工程管理器的简介以及shell脚本实践指南

来源:互联网 发布:网络对大学生的好处 编辑:程序博客网 时间:2024/06/16 16:32

一、工程管理器的简介与使用

1、  工程管理器:make

优点:自动编译管理

默认执行文件:makefile

2、  规则:1.创建目标体

                    2.创建目标体的依赖文件

                    3.命令,并以tab键开头

例: hello:hello.o

    <tab>gcc –o hello hello.o

    Hello.o:hello.c

            gcc –c hello.c

    .PHONY:clean          //声明伪目标

    clean:                       //伪目标

            rm –f *.o      

如何执行伪目标:make clean

 

定义变量:

例: obj=main.o func1.o…    

     hello:$(obj)               //取值是用$()

          gcc $(obj) –o hello

        $^         所有依赖文件

        $@        目标文件

        $<         第一个依赖文件

        #          注释

        @         取消命令回显

例: gcc $^ -o $@


shell脚本的简介与实例:

脚本—shell

Shell是一个命令行解释器

Shell的种类:Bourne shell(sh)   Bourne Again shell(bash)

一、变量:

变量名=值例:a=’A’                  注意:变量赋值时,“=”两边都不能有空格

取变量 $变量名  echo(回显)   echo $a

注意:如果变量名与其他合在一起时要用{}分开例:${num}nd

二、默认变量:

$#      传入脚本的命令行参数个数

$*      所有命令行的参数值

$0      命令本身

$1      第一个命令行参数

$2      第二个命令行参数

例: #  ./shell  a   b  

         $0   $1  $2

 

三、Shell 中的循环:

1、if语句:

结构:If[expression]

                            then

                                      #code block

            else if[expression]

                                               then

                                      #code block

                                    else if

                                     …………

            fi

        fi

不管有多少个if else 最后都只需要两个fi 结束

2、  for循环:

for var in [list]       val 是循环控制变量   list是var需要遍历的一个集合

   do

                    #codeblock

   Done

比较操作:

相同:      -eq    =

不同:      -ne   !=

大于:      -gt    >

小于:      -lt     <

大于等于:  -ge

小于等于:  -le

空:        -z

非空:      -n

 

-e 文件已存在

-f 文件是普通文件

-s 文件大小不为零

-d 文件是一个目录

-r 文件对当前用户可以读取

-w 文件对当前用户可以写入

-x 文件对当前用户可以执行

例:    [ -r "$folder" ] && echo"Can read $folder“

[ -f "$folder" ] || echo "thisis not file"

 

3、  while  / untill 循环:

while/untill [ ]                 while—[ ]里为真循环,untill相反

do

         #

 done

4、case开关语句:

      case “$var” in

                   contidion1)

                            ;;

                   contidion1)

                            ;;

                   *)

                   defaultstatements;;

         esac

 

例:

case “$Keypress" in

                   [A-Z]) echo "Uppercase letter";;   

                   [a-z]) echo "Lowercase letter";;    

                   [0-9]) echo "Digit";;

                   *) echo "Punctuation, whitespace, or other";;

         esac 
1 0
原创粉丝点击