条件表达式也可以使用 “test 条件表达式” 格式来使用。
使用测试语句判断testdir是否为一个目录类型的文件,然后通过Shell解释器的内设¥?变量显示上一条命令执行后的返回值。如果返回值为0,则目录存在;如果返回值为非零的值,则目录不存在。
#测试语句与$?搭配使用 [root@rockman 0615]# ls -l total 4 -rw-r--r--. 1 root root 140 Jun 15 16:43 example.sh drwxr-xr-x. 2 root root 6 Jun 15 17:10 testdir [root@rockman 0615]# [ -d testdir ] [root@rockman 0615]# echo $? #成功返回0 0 [root@rockman 0615]# test -d testdir [root@rockman 0615]# echo $? #成功返回0 0逻辑语句用于对测试结果进行逻辑分析,根据测试结果可实现不同的效果。
表示当前面的命令执行成功后才会执行它后面的命令。
#如果testdir存在,则打印Exist [root@rockman 0615]# [ -e testdir ] && echo "Exist" Exist表示当前面的命令执行失败才会执行它后面的名令。
#如果testdir01不存在,则打印Not Exist [root@rockman 0615]# [ -e testdir01 ] || echo "Not Exist" Not Exist它表示把条件测试 中的判断结果取相反值。
#如果[ ! $USER = root ]执行失败,则答应administrator [root@rockman 0615]# [ ! $USER = root ] || echo "administrator" administrator整数比较运算符仅是对数字的操作,不能将数字与字符串、文件等内容一起操作,而且不能想当然地使用日常生活张工的等号、大于号、小于号来判断。
-eq 是否等于 -ne 是否不等于 -gt 是否大于 -lt 是否小于 -le 是否等于或小于 -ge 是否大于或等于 [root@rockman 0619]# [ 10 -eq 10 ] [root@rockman 0619]# echo $? #成功返回0 0 [root@rockman 0619]# [ 10 -ne 10 ] [root@rockman 0619]# echo $? #失败返回非零 1字符串比较语句用于判断测试字符串是否为空值,或者两个字符串是否相同。它经常用来判断某个变量是否未被定义(即内容为空值)。
= 比较字符串内容是否相同 != 比较字符串内容是否不同 -z 判断字符串内容是否为空 [root@rockman 0619]# [ -z $String ] [root@rockman 0619]# echo $? #成功返回零,则String为空,未定义 0 [root@rockman 0619]# [ $LANG != "en.US" ] && echo "Not en.US" Not en.US转载于:https://www.cnblogs.com/rock-cc/p/9188545.html
