1 退出状态
1 在Linux shell编程中,每个命令在脚本完成后都会有一个退出状态
2 退出状态用一个整数值表示,若退出状态为0表示成功,若退出状态非0表示失败。
3 最后一次执行命令的推出状态保存在内配变量"$?"中,我们可以通过echo $?来查看
4 退出状态及其含义
状态值 含义
0 表示运行成功,程序执行未遇到任何问题
1~255 表示运行失败,脚本命令,系统命令错误或参数传递错误
126 找到了命令但无法执行
127 未找到要运行的命令
>128 命令曾被系统强行结束
2 测试
1 测试命令可用于测试表达式的条件的真假,如果测试条件为真,则返回一个0,如果测试的条件为非假则返回一个非0的值
2 测试命令有两种方式
1 test expression
expression是一个表达式,该表达式可由数字,字符串,文本和文件属性的比较,同时可以加入各种算术,字符串, 文本等运算符。
2 [ expression ]
其中[]是一个启动测试的命令,但是要求在[和]的后面和前面都要有一个空格,这种测试条件是计较常用的,经常和if,while等联用。
3 整数数值的比较
1 一般的整数比较方式是,假设两个整数为a和b
[ $a -operator $b ] // operator是比较符号
2 如果是使用[]比较,那么operator有如下6种
整数比较运算符 描述
[ $a -eq $b ] 比较a是否和b相等
[ $a -ge $b ] 比较a是否大于等于b
[ $a -gt $b ] 比较a是否大于b
[ $a -le $b ] 比较a是否小于等于b
[ $a -lt $b ] 比较a是否小于b
[ $a -ne $b ] 比较a是否不等于b
4 字符串比较
1 同整数运算符一样,Linux中也提供了字符串运算符
2 字符串运算符表
字符串运算符 描述
[ string ] 测试字符串string是否不为空
[ -n string ] 测试字符串string是否不为空
[ -z string ] 测试字符串是否为空
[ string1 = string2 ] 测试字符串string1和string2是否相等
[ string1 != string2 ] 测试字符串string1和string2是否不相等
5 文件操作符
1 文件的测试操作也有两种方法
test file_operator file // file_operator是文件的操作符
[ file_operator file ] // file_operator是文件的操作符
2 文件操作符表
文件运算符 描述
[ -d file ] 测试文件file是否为目录
[ -e file ] 测试文件file是否存在
[ -f file ] 测试文件file是否为普通文件
[ -r file ] 测试文件file是否是进程可读文件
[ -s file ] 测试文件file的长度是否不为0
[ -w file ] 测试文件file是否是进程可写文件
[ -x file ] 测试文件file是否是进程可执行文件
[ -L file ] 测试文件file是否符号化链接