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

你可能感兴趣的文章
python判断汉字数目
查看>>
python判断文件是空的,如果是空的,就删除
查看>>
python判断密码是否正确_python密码判断是否符合要求的方法
查看>>
python判断字符串包含中文_Python 判断字符串是否包含中文
查看>>
python删除第一行_Python 乱码指北:一行删掉根目录
查看>>
Python删除列表元素的三种方法
查看>>
python初步学习-python数据类型-集合(set)
查看>>
python列表生成字典_Python中将字典转换为列表的方法
查看>>
python列表对应元素合并为列表及判断一个列表是几维
查看>>
python列表去重复后按照顺序_从包含不可共元素的Python列表中删除重复元素,同时保留顺序?...
查看>>
python列表前几个_python之列表
查看>>
python列表元组
查看>>
Python列表/元组/字典和集合使用
查看>>
python列表 行列选择_python_pandas_dataframe_行列选择_切片操作
查看>>
python列表
查看>>
python列出当前目录、子目录和文件的脚本
查看>>
python+flask计算机毕业设计骨科门诊患者档案管理系统(程序+开题+论文)
查看>>
python+flask计算机毕业设计高校体测管理系统的设计与实现(程序+开题+论文)
查看>>
Python切片对象和__getitem__
查看>>
python+flask计算机毕业设计高校体育竞赛成绩管理系统的设计与实现(程序+开题+论文)
查看>>