博客
关于我
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/

你可能感兴趣的文章
OpenStack的基本概念与架构详解
查看>>
Openstack的视频学习
查看>>
openstack虚拟机迁移live-migration中libvirt配置
查看>>
ORACEL学习--理解over()函数
查看>>
ORACLE Bug 4431215 引发的血案—原因分析篇
查看>>
oracle dblink结合同义词的用法 PLS-00352:无法访问另一数据库
查看>>
Oracle dbms_job.submit参数错误导致问题(ora-12011 无法执行1作业)
查看>>
Oracle GoldenGate Director安装和配置(无图)
查看>>
oracle script
查看>>
Oracle SOA Suit Adapter
查看>>
Oracle Spatial空间数据库建立
查看>>
UML— 活动图
查看>>
Oracle 写存储过程的一个模板还有一些基本的知识点
查看>>
oracle 创建字段自增长——两种实现方式汇总
查看>>
Oracle 升级10.2.0.5.4 OPatch 报错Patch 12419392 Optional component(s) missing 解决方法
查看>>
oracle 可传输的表空间:rman
查看>>
Oracle 启动监听命令
查看>>
oracle 学习
查看>>
ORACLE 客户端工具连接oracle 12504
查看>>
oracle 行转列
查看>>