本文共 1121 字,大约阅读时间需要 3 分钟。
在Shell编程中,test命令用于测试表达式是否成立。如果表达式不成立,则返回0;否则返回非0的值。
test 条件表达式[ 条件表达式 ][ 操作符 文件或目录 ]-d:测试是否为目录-e:测试文件或目录是否存在-f:测试是否为文件-r:测试是否有读取权限-w:测试是否有写入权限-x:测试是否有执行权限[ 整数1 操作数 整数2 ]-eq:等于-ne:不等于-gt:大于-lt:小于-le:小于或等于-ge:大于或等于[ 字符串1 = 字符串2 ] 或 [ 字符串1 != 字符串2 ][ -z 字符串 ] 或 [ -n 字符串 ]=: 字符串相等!=: 字符串不相等-z: 字符串为空-n: 字符串不为空[ 表达式1 ] 操作符 [ 表达式2 ]命令1 操作符 命令2-a 或 &&: 逻辑与(且)-o 或 ||: 逻辑或(或)!: 逻辑否if [ 条件测试操作 ]; then 命令序列 fiif [ 3 -gt 2 ]; then echo "ok"; fi
if [ 条件测试操作 ]; then 命令序列 1 else 命令序列 2 fiif [ $a -eq 1 ]; then echo "a等于1"; else echo "a不等于1"; fi
if [ 条件测试操作 1 ]; then 命令序列 1 elif [ 条件测试操作 2 ]; then 命令序列 2 else 命令序列 3 fiif [ $seconds -gt 10 ]; then echo "秒数大于10秒"; elif [ $seconds -le 10 ]; then echo "秒数小于等于10秒"; else echo "秒数格式错误"; fi
case 变量值 in模式一)命令序列 ;;模式二)命令序列 ;;……*) 默认命令序列esac
case $input in"0"|"1"|"2" ) echo "输入正确" ;;*) echo "输入错误,请重新输入"esac
通过以上条件测试操作和if语句,你可以在Shell脚本中实现复杂的逻辑判断。
转载地址:http://uwag.baihongyu.com/