说明$?: $?为上一次命令的执行返回值,若上一次命令正常执行,则返回0;若执行出错,则返回一个非0的随机数。比如创建一个已经存在的目录,则返回一个非0数。 另外,测试语句成立返回0,否则返回非0随机数。
[ 条件表达式 ] 两侧必须有空格
1.文件测试语句 -d 是否为目录文件 -e 文件是否存在 -f 是否为一般文件 -r 当前用户是否有权限读 -w 写 -x 执行 # [ -d /etc/fstab ] # echo $? 显示为非0数
2.逻辑测试语句 && 表示前面命令执行成功后才执行后面命令 ||表示前面不成功才执行后面 =判断是否相等 !把判断结果取相反值 如对于root用户:# [ $USER = luciusvorenus ] || echo "error" 显示为error # [ ! $USER = luciusvorenus ] && echo "error" 也显示为 error # [ ! $USER = root ] && echo "true" || echo "error" 也显示为 error
3.整数值比较语句 整数比较运算符仅是对数字的操作,不能将数字与字符串、文件等内容一起操作。 -eq 是否等于 -ne 是否不等于 -gt 是否大于 -lt是否小于 -le是否小于等于 -ge是否大于等于 # [ 10 -gt 10 ] #echo $?
4.字符串比较语句 = 字符串内容是否相同 != 字符串内容是否不同 -z 字符串内容是否为空(即变量是否未被定义,未被定义就为空) # [ -z $String ] //判断字符串String是否为空(是否未被定义为变量) #echo $? # [ $LANG = "en.US" ] # echo $?