1: 脚本开始行 #!/bin/bash 这一行表明,不管用户选择的是那种交互式shell,该脚本需要使用bash shell来运行。 由于每种shell的语法大不相同,所以这句非常重要。2:变量定义变量 变量名称只能是字母开头,可以包涵字母,数字下划线。 不能有点号 不能用bash里的关键字 variable=”Variable” 变量名和变量值中间不能有空格字符串 单引号和双引号的区别 单引号不会转译内容,会按原内容输出 双引号会转译,有变量的会把变量的值输出使用变量
$variable 前面要加$符号 标准做法是${variable} {}是用来区分边界的
如果想在变量后跟别的变量,就要用标准做法
导出变量 export variableName 意思其实就跟定义一个全局变量一样3:特殊变量 $$ 执行脚本的进程ID $n 输入参数 $1 第一个参数 $2 第二个参数 。。。 $@ 输入的所有参数 $* 输入的所有参数 当$*被 引号包围里表示所有参数会做为一个整体 “$1 $2…” $# 输入参数的总数量 $? 上一个命令的返回值 $HOME 家目录 $PATH path路径 4:运算 算术运算
+ – * / % 都可以进行, 注意乘法的时候要用\*
let result=a+b 注意空格
result=`expr $a + $b` 注意空格
上面两种都可以进行运算
逻辑运算 数字运算 -eq 相等 -ne 不等 -gt 大于 -lt 小于 -ge 大于等于 -le 小于等于 字符串 = 两个字符串是否相等 != 是否不等 -z 字符串是长度是否为0(zero) -n 长度是否不为0 str 字符是否为空 文件测试 -d 是否为目录 -f 是否是普通文件 -r 是否可读 -w 是否可写 -x 是否可执行 -s 文件大小是否大于0 5: 条件判断 if / then /fi if /then /else/fi if /then /elif /then /else /fi if [[ expression ]]; then statement : (如果没有内容用冒号点位) fi 判断条件与中括号之间要有空格,否则bash会认为是连在一起的字符 a=10 if [[ a -eq 10 ]]; then echo “a is equal 10″ elif [[ a -gt 10 ]]; then echo “a is bigger than 10″ else echo “a is lessthan 10″ fi 6:case/esac case variable in case1) statement1 ;; case2) statement2 ;; *) statement3 ;; esac 7:循环 for 循环 for 变量 in 列表 do ……. done for loop in 1 2 3 4 5 do echo $loop done while 循环 while boolean条件 do ….. done 如果条件为true则断续执行 until 循环 until 执行条件 do … done 如果条件为false,则一直断续执行 跳出循环 break, continue break可以跳出所有循环,如果是嵌套循环,则在break后面跟一个数字表示跟出第几层循环 for var1 in arr1 do for var2 in arr2 do if [[ 条件 ]];then break 2 fi done done 上例中break 2是直接跳出最外层循环8:函数 function_name () { list of commands [ return value ] }函数可以传参数