博客
关于我
Shell编程之条件语句(if语句,case分支语句)
阅读量:376 次
发布时间:2019-03-05

本文共 1121 字,大约阅读时间需要 3 分钟。

Shell编程之条件语句

1. 条件测试操作

在Shell编程中,test命令用于测试表达式是否成立。如果表达式不成立,则返回0;否则返回非0的值。

1.1 test命令

  • 格式1:test 条件表达式
  • 格式2:[ 条件表达式 ]

1.2 文件测试

  • 格式:[ 操作符 文件或目录 ]
  • 常用操作符:
    • -d:测试是否为目录
    • -e:测试文件或目录是否存在
    • -f:测试是否为文件
    • -r:测试是否有读取权限
    • -w:测试是否有写入权限
    • -x:测试是否有执行权限

1.3 整数值比较

  • 格式:[ 整数1 操作数 整数2 ]
  • 常用操作符:
    • -eq:等于
    • -ne:不等于
    • -gt:大于
    • -lt:小于
    • -le:小于或等于
    • -ge:大于或等于

1.4 字符串比较

  • 格式1:[ 字符串1 = 字符串2 ][ 字符串1 != 字符串2 ]
  • 格式2:[ -z 字符串 ][ -n 字符串 ]
  • 常用操作符:
    • =: 字符串相等
    • !=: 字符串不相等
    • -z: 字符串为空
    • -n: 字符串不为空

1.5 逻辑测试

  • 格式1:[ 表达式1 ] 操作符 [ 表达式2 ]
  • 格式2:命令1 操作符 命令2
  • 常用操作符:
    • -a&&: 逻辑与(且)
    • -o||: 逻辑或(或)
    • !: 逻辑否

2. if语句

2.1 单分支结构

  • 格式:if [ 条件测试操作 ]; then 命令序列 fi
  • 示例:
    if [ 3 -gt 2 ]; then echo "ok"; fi

2.2 双分支结构

  • 格式:if [ 条件测试操作 ]; then 命令序列 1 else 命令序列 2 fi
  • 示例:
    if [ $a -eq 1 ]; then echo "a等于1"; else echo "a不等于1"; fi

2.3 多分支结构

  • 格式:if [ 条件测试操作 1 ]; then 命令序列 1 elif [ 条件测试操作 2 ]; then 命令序列 2 else 命令序列 3 fi
  • 示例:
    if [ $seconds -gt 10 ]; then echo "秒数大于10秒"; elif [ $seconds -le 10 ]; then echo "秒数小于等于10秒"; else echo "秒数格式错误"; fi

3. case分支语句

  • 格式:
    case 变量值 in模式一)命令序列 ;;模式二)命令序列 ;;……*) 默认命令序列esac
  • 示例:
    case $input in"0"|"1"|"2" )  echo "输入正确"  ;;*)  echo "输入错误,请重新输入"esac

通过以上条件测试操作和if语句,你可以在Shell脚本中实现复杂的逻辑判断。

转载地址:http://uwag.baihongyu.com/

你可能感兴趣的文章
Objective-C实现ApproximationMonteCarlo蒙特卡洛方法计算pi值算法 (附完整源码)
查看>>
Objective-C实现area under curve曲线下面积算法(附完整源码)
查看>>
Objective-C实现argmax函数功能(附完整源码)
查看>>