if [ 表达式 ]
then
命令行1;
命令行2;
else
命令行3;
命令行4;
fi
注意:fi是整个语句的结束标志,不可缺少。“表达式"前后的空格不可缺少。
”表达式“的描述规则:
- 文件表达式
if [ -d ... ]
if [ -s file ]
if [ -r file ]
if [ -w file ]
if [ -x file ]
- 整数变量表达式
if [ int1 -ne int2 ]
if [ int1 -ge int2 ]
if [ int1 -gt int2 ]
if [ int1 -le int2 ]
if [ int1 -lt int2 ]
-
字符串变量表达式
if [ $string1 !=
if [ -n $string
if [ -z $string
if [ $sting ]
- 逻辑表达式
if [ ! 表达式 ]
if [ ! -d $num ]
if [ 表达式1
if [ 表达式1
-
表达式与前面的 = != -d –f –x -ne -eq -lt 等合用
-
逻辑符号就正常的接其他表达式,没有任何括号( ),就是并列
-
注意逻辑与-a与逻辑或-o很容易和其他字符串或文件的运算符号搞混了
注意:上述“表达式”的规则如C语言相差很大。“表达式”中的空格使用要严谨,容易出错。
= 放在别的地方是赋值,放在if [ = ] 里就是字符串等于,shell里面没有 ==。
整数条件表达式,大于,小于,shell里没有> 和< ,会被当作尖括号,只有-ge,-gt,-le,lt。