读书人

Linux shell编程 八 - 退出+测试

发布时间: 2013-10-18 20:53:13 作者: rapoo

Linux shell编程 8 ---- 退出+测试


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是否符号化链接


读书人网 >编程

热点推荐