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

你可能感兴趣的文章
PostgreSQL 存储过程基本语法
查看>>
PostgreSQL 实现批量更新、删除、插入
查看>>
PostgreSQL 导入 .gz 备份文件
查看>>
PostgreSQL 批量插入&更新数据时报错(ERROR: ON CONFLICT DO UPDATE command cannot affect row a second time)
查看>>
PostgreSQL 新增数据返回自增ID
查看>>
postgresql 更新多列数据
查看>>
PostgreSQL 服务启动后停止
查看>>
PostgreSQL 辟谣存在任意代码执行漏洞:消息不实
查看>>
PostgreSQL+PostGIS实现两坐标点之间最短路径查询算法函数(地图工具篇.12)
查看>>
Qt开发——简易调色板QPalette
查看>>
PostgreSQL-解决连接时遇到的乱码问题
查看>>
PostgreSQL15.2最新版本安装_远程连接_Navicat操作_pgAdmin操作_Windows10上安装---PostgreSQL工作笔记001
查看>>
PostgreSQL9.1 双机部署配置(主备数据同步)
查看>>
Qt开发——简易网络浏览器(一)
查看>>
Qt开发——简易成绩登记系统
查看>>
Postgresql中PL/pgSQL代码块的语法与使用-声明与赋值、IF语句、CASE语句、循环语句
查看>>
Postgresql中PL/pgSQL的游标、自定义函数、存储过程的使用
查看>>
Postgresql中的表结构和数据同步/数据传输到Mysql
查看>>
Postgresql中自增主键序列的使用以及数据传输时提示:错误:关系“xxx_xx_xx_seq“不存在
查看>>
postgreSQL入门命令
查看>>