shell脚本能够看作是命令的堆砌,经过结合命令流程控制机制实现。python
解释器 #!/bin/bash或/usr/bin/python 也称为shebangshell
通常脚本须要赋予执行权限,也能够使用bash xxx.sh 来事先声明express
shell的条件判断能够分为bash
1:整数测试ide
2:字符串测试测试
3:文件测试spa
条件测试表达式字符串
[ expression ] #注意方括号与表达式之间有空格string
` expression ` #也有这种格式的测试格式it
test expression
整数比较
-eq:两个整数是否相等 #equal
-ne:两个整数是否不等 #not equal
-gt:前一个数是否大于后一个数
-lt:前一个数是否小于后一个数
-ge:前一个数是否大于等于后一个数
-lt:前一个数是否小于等于后一个数
文件测试:
-e /path/to/file :测试文件是否存在
例如:[ -e /etc/inittab ] [ ! -e /etc/inittab ]
-d /path/to/file :测试是否为目录
-f /path/to/file :测试是否为普通文件
-r /path/to/file 测试文件对当前用户是否有读权限
-w /path/to/file 测试文件对当前用户是否有写权限
-x /path/to/file 测试文件对当前用户是否有执行权限
字符测试
== :测试字符串string1是否与字符串string2相同
!= :测试字符串string1是否与字符串string2不相同
>
<
-n: 测试字符串是否为空
-z: 测试字符串是否为非空
命令间逻辑
逻辑与:&&
逻辑非:!
逻辑或:||
条件判断,控制结构
if 判断条件;then #单分支
statement1
statement2
...
fi
if 判断条件;then
statement
...
else
statement
...
fi
算数运算
算数运算表达式:
1:let 算术运算表达式 例:let c=$A+$B
2:$[算术运算表达式] 例:C=$[$A+$B]
3:$((算数运算表达式)) 例:C=$(($A+$B))
4:expr 算数运算表达式 #表达式中各操做数和运算符之间要有空格,并且要使用命令引用
例:C=`expr $A + $B`
在脚本中使用exit 能够退出当前shell
exit # 自定义返回状态值
#若是脚本没有定义状态退出码,最后一条命令的退出码即为脚本退出码
多分支if语句
if 判断条件;then
statement
...
elif 判断条件2;then
...
...
else
...
fi
测试脚本
bash -n xxx.sh #简单检查脚本语法错误。
bash -x xxx.sh #可查看每一个语句的执行结果,来检查错误。