学无先后,达者为师

网站首页 编程语言 正文

Shell脚本中的条件测试命令简介

作者:星河繁 更新时间: 2024-03-19 编程语言

在Shell脚本中,条件测试命令用于根据不同的条件判断返回一个状态码(0表示成功/真,非零值表示失败/假),从而控制程序的流程。条件测试是通过 test 命令或其另一种等价形式 [ … ] 来执行的。下面是一些详细的条件测试内容:

  1. test 命令与方括号形式

    使用 test 命令进行条件测试:test condition
    等价的方括号形式:[ condition ]

    注意:方括号两边需要有空格,例如 [ -f file.txt ]

  2. 常见条件测试选项

    a) 文件测试:

    • -e file: 检查文件是否存在。
    • -f file: 检查文件是否存在且为普通文件(不是目录、设备文件等)。
    • -d file: 检查是否为目录。
    • -r file: 检查是否有读权限。
    • -w file: 检查是否有写权限。
    • -x file: 检查是否有执行权限。

    b) 数值比较:

    -eq, -ne, -gt, -lt, -ge, -le: 整数值比较,分别表示等于、不等于、大于、小于、大于等于、小于等于。

    c) 字符串比较:

    • = 或 ==: 字符串相等。
    • !=: 字符串不等。
    • -z string: 字符串长度为零(即为空字符串)。
    • -n string: 字符串长度不为零(即非空字符串)。
  3. 示例

    # 文件存在性检查 
    if [ -f /path/to/file ]; then 
    	echo "文件存在并是一个普通文件" 
    fi 
    # 数值比较 
    num1=5 
    num2=7 
    if [ $num1 -eq $num2 ]; 
    	then echo "num1 和 num2 相等" 
    else 
    	echo "num1 和 num2 不相等" 
    fi 
    # 字符串比较 
    str1="Hello" 
    str2="World" 
    if [ "$str1" = "$str2" ]; then 
    	echo "str1 和 str2 相等" 
    else 
    	echo "str1 和 str2 不相等" 
    fi
    
  4. 逻辑组合

    可以使用逻辑操作符连接多个条件测试,如:

    &&: 逻辑与(两个条件都为真时结果才为真)。
    ||: 逻辑或(两个条件有一个为真时结果就为真)。

    if [ -f file1.txt ] && [ -f file2.txt ]; then 
    	echo "file1.txt 和 file2.txt 都存在" 
    fi
    

原文链接:https://blog.csdn.net/weixin_40482577/article/details/136702417

  • 上一篇:没有了
  • 下一篇:没有了
栏目分类
最近更新