Linux Shell 脚本中括号类型及用途示例小结
作者:只有风知道我的存在
本文给大家介绍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括号内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!