shell中的条件判断

read命令 命令的语法:

read [参数] 变量名 常用的参数如下:

-t timeout 设定超时时间。

-p prompt 设定提示信息,该提示信息将会显在光标前。

 

条件测试:

条件测试可以判断脚本程序运行的状态。它常用于条件分支,以便在不同的运行状态下执行不同的命令。

[ param1 判断符号 param2 ]

[ 判断符号 param ]

文件状态测试:

-b filename 判断文件filename是否为块设备,若文件不存在返回假。

-c filename 判断文件filename是否为字符设备,若文件不存在返回假。

-d pathname 判断路径pathname是否为目录,若路径不存在返回假。

-e pathname 判断路径pathname是否存在。

-f filename 判断文件filename是否为真会文件,若文件不存在返回假。

-g pathname 判断路径pathname是否设置了SGID位,若路径不存在返回假。

-h filename 判断文件filename是否为链接文件,若文件不存在返回假。

-k pathname 判断路径pathname是否设置了“粘滞”位,若路径不存在返回假。

-p filename 判断文件filename是否为管道文件,若文件不存在返回假。

-r pathname 判断路径pathname是否为可读,若路径不存在返回假。

-s filename 判断文件filename的尺寸是否大于0,若文件不存在返回假。

-S filename 判断文件filename是否是Socket,文件不存在返回假。

-u pathname 判断路径pathname是否设置了SUID位,若路径不存在返回假。

-w pathname 判断路径pathname是否为可写,若路径不存在返回假。

-x pathname 判断路径pathname是否为可执行,若路径不存在返回假。

-O pathname 判断路径pathname是否为当前用户所拥有,若路径不存在返回假。

-G pathname 判断路径pathname的用户组是否为当前用户所在组,若路径不存在返回假。

file1 -nt file2 判断文件file1是否比文件file2新。

file1 -ot file2 判断文件file1是否比文件file2旧。

逻辑操作

param1 –a param2 逻辑与。

param1 –o param2 逻辑或。

! param 逻辑非。

字符测试:

-z string 判断字符串string是否为空串,即长度为0。

-n string 判断字符串string 是否为非空串。

string1 = string2 判断字符串string1和string2是否相等。

string1 != string2 判断字符串string1和string2是否不等。

string1 < string2 按字符编码表排序,字符串string1是否在string2之前。

string1 > string2 按字符编码表排序,字符串string1是否在string2之后。

 

数值测试:

val1 –eq val2 判断val1和val2的数值是否相等。

val1 –ne val2 判断val1和val2的数值是否不等。

val1 –lt val2 判断val1是否小于val2。

val1 –le val2 判断val1是否小于等于val2。

val1 –gt val2 判断val1是否大于val2。

val1 –ge val2 判断val1是否大于等于val2。

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。