Linux Shell 脚本中括号类型及用途示例小结

 更新时间:2025年09月02日 10:52:24   作者:只有风知道我的存在  
本文给大家介绍Linux Shell脚本中括号类型及用途示例小结,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧

1. 圆括号()

用途:用于命令分组或子shell执行。
示例

( command1; command2 )  # 在子shell中执行命令,不影响当前环境
result=$(command)      # 命令替换,将命令输出赋值给变量

数学运算(需配合 $(( ))):

echo $(( 5 + 3 ))      # 输出8

2. 花括号{}

用途:用于代码块、变量扩展或序列生成。
示例

{ command1; command2; }  # 在当前shell执行代码块(注意末尾分号和空格)
echo {1..5}             # 输出1 2 3 4 5(序列生成)
echo ${var:-default}    # 变量扩展,若var未定义则返回default

注意

  • 代码块末尾需有分号和空格。
  • 变量扩展时避免与重定向冲突(如${var}>file)。

3. 方括号[]和[[]]

单方括号 []

  • 等效于 test 命令,用于条件测试。
  • 需严格保留空格和运算符。
if [ "$a" -eq 5 ]; then  # 数值比较
    echo "a等于5"
fi

双方括号 [[]]

  • 更强大的条件测试,支持模式匹配和逻辑运算符(如 &&||)。
if [[ "$str" == *"match"* ]]; then  # 字符串模式匹配
    echo "包含match"
fi

4. 尖括号<>

用途:主要用于重定向。
示例

command < input.txt    # 输入重定向
command > output.txt   # 输出重定向
command 2> error.log   # 错误输出重定向

5. 双圆括号(())

用途:专门用于算术运算。
示例

(( count++ ))          # 变量自增
if (( a > b )); then   # 数值比较
    echo "a大于b"
fi

常见问题及注意事项

  • 空格要求[][[]] 内必须保留空格(如 [ "$a" -eq 1 ]),而 (())$(()) 不需要。
  • 字符串比较:在 [[]] 中使用 ==!= 进行模式匹配,[] 中需用 =-eq
  • 变量引用:在 [] 中引用变量需加双引号(如 "$var"),避免空值错误。

总结

  • ():子shell执行或数组初始化。
  • (( )):算术运算与逻辑判断。
  • []:基础条件测试。
  • [[]]:高级条件测试(支持通配符)。
  • {}:序列扩展、变量操作。
  • $():命令输出捕获。
  • $(( )):算术结果捕获。

到此这篇关于Linux Shell 脚本中括号类型及用途示例小结的文章就介绍到这了,更多相关linux shell括号内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • bash脚本输入密码不回显问题的解决方法

    bash脚本输入密码不回显问题的解决方法

    编写一个bash脚本时,需要用户输入一个密码,方可继续后续流程,但是又要保证用户输入的密码不会被别人看到,因此排除了通过参数将密码传入脚本的方案
    2013-08-08
  • Linux shell查找文件显示行号和对应区间的内容

    Linux shell查找文件显示行号和对应区间的内容

    今天小编就为大家分享一篇关于Linux shell查找文件显示行号和对应区间的内容,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-12-12
  • 使用ntpdate工具校正linux服务器时间(实现方法)

    使用ntpdate工具校正linux服务器时间(实现方法)

    下面小编就为大家带来一篇使用ntpdate工具校正linux服务器时间(实现方法)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-06-06
  • jar包重启shell脚本问题记录

    jar包重启shell脚本问题记录

    工作中经常需要重启jar包,这里写一个restart.sh文件,记录一下,对shell脚本重启jar包知识感兴趣的朋友一起看看吧
    2024-02-02
  • touch shell脚本并修改为777权限的方法

    touch shell脚本并修改为777权限的方法

    这篇文章主要介绍了touch shell脚本并修改为777权限的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-06-06
  • shell查找当前目录下大于1M的文件的三种方法分享

    shell查找当前目录下大于1M的文件的三种方法分享

    查找当前目录下大于1M的文件的三种方法,有需要的朋友可以参考下
    2013-02-02
  • 在Shell脚本中调用另一个脚本的三种方式讲解

    在Shell脚本中调用另一个脚本的三种方式讲解

    今天小编就为大家分享一篇关于在Shell脚本中调用另一个脚本的三种方式讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-04-04
  • linux shell在while中用read从键盘输入的实现

    linux shell在while中用read从键盘输入的实现

    下面小编就为大家带来一篇linux shell在while中用read从键盘输入的实现。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-01-01
  • 一个shell小案例(创建日期目录)

    一个shell小案例(创建日期目录)

    需要在多个目录中 (如:beijing shanghai tianjin guangzhou 等等) 创建子目录(以年份命名),然后进入子目录,新建目录并以当天的日期命名
    2016-08-08
  • Shell管道和过滤器的使用

    Shell管道和过滤器的使用

    本文主要介绍了Shell管道和过滤器的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-03-03

最新评论