博客
关于我
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实现tabu search禁忌搜索算法(附完整源码)
查看>>
Objective-C实现tanh函数功能(附完整源码)
查看>>
Objective-C实现Tarjan 用于在有向图中查找强连通分量的算法(附完整源码)
查看>>
Objective-C实现TCP Server 多线程同时连接多个客户端(附完整源码)
查看>>
Objective-C实现TCP拥塞控制(附完整源码)
查看>>
Objective-C实现tcp网络通讯服务器+客户端(附完整源码)
查看>>
Objective-C实现temperature conversions温度转换算法(附完整源码)
查看>>
Objective-C实现Tenengrad梯度函数(附完整源码)
查看>>
Objective-C实现ternary search三元搜索算法(附完整源码)
查看>>
Objective-C实现TernarySearch三分查找算法(附完整源码)
查看>>
Objective-C实现The Game of Life 生命游戏算法(附完整源码)
查看>>
Objective-C实现tim sort排序算法(附完整源码)
查看>>
Objective-C实现Timsort算法(附完整源码)
查看>>
Objective-C实现TOPK算法(附完整源码)
查看>>
Objective-C实现topological sort拓扑排序算法(附完整源码)
查看>>
Objective-C实现topologicalSort拓扑排序算法(附完整源码)
查看>>
Objective-C实现tower of hanoi河内塔算法(附完整源码)
查看>>
Objective-C实现trapezoidal rule梯形法则算法(附完整源码)
查看>>
Objective-C实现Trapping Rain Water捕获雨水问题算法(附完整源码)
查看>>
Objective-C实现Travelling Salesman算法(附完整源码)
查看>>