1、shell脚本中的字符串比较
string1 = string2 如果两个字符串相同,结果就为真
string1 != string2 如果两个字符串不同,结果就为真
-n string 如果字符串不为空,则结果为真
-z string 如果字符串为一个空串(null),则结果为真
2、shell脚本中的算数比较
expression1 -eq expression2 如果两个表达式相等,则结果为真
expression1 -ne expression2 如果两个表达式不等,则结果为真
expression1 -gt expression2 如果expression1大于expression2,则为真
expression1 -ge expression2 如果expression1大于等于expression2,则为真
expression1 -lt expression2 如果expression1小于expression2,则为真
expression1 -le expression2 如果expression1小于等于expression2,则为真
!expression 表达式为假,则结果就为真;反之亦然
3、shell脚本中的文件条件测试
-d file 如果文件是一个目录,则为真
-f file 如果文件是一个普通文件,则为真;也可以用来测试文件是否存在
-r file 如果文件可读,则结果为真
-s file 如果文件大小不为0,则结果为真
-w file 如果文件可写,则结果为真
-x file 如果文件可执行,则结果为真
4、自定义错误输出,exit
退出码(exit status,或exit code)的约定:
0表示成功(Zero - Success)
非0表示失败(Non-Zero - Failure)
2表示用法不当(Incorrect Usage)
127表示命令没有找到(Command Not Found)
126表示不是可执行的(Not an executable)
>=128 信号产生
格式:exit n
退出。设置退出码为n。
格式:$?
上一个命令的退出码。
5、控制语句
5.1 if语句
结构如下:
if condition
then
statements
else
statements
fi
elif语句
结构如下
if condition;then
statements
elif condition;then
statements
else
statements
fi
1、判断文件是否存在
2、判断字符串是否为空
3、判断字符串是否相等
5.2 for语句
结构如下:
for variable in values
do
statements
done
5.3 while语句
结构如下:
while condition
do
statements
done
while read line
do
statements
done < test.txt
1、读取文件中的配置
5.4 case语句
结构如下:
case variable in
pattern [ | pattern] ...)
statements
;;
pattern [ | pattern] ...)
statements
;;
...
esac
case variable in
test1)
command
;;
test2)
command
;;
*)
command
esac
5.5 查看Linux脚本执行过程
bash -x