括号的种类
- 小括号,圆括号 ( )
- 中括号,方括号 [ ]
- 大括号、花括号 { }
一、单小括号 ()
1.另开命令组——小括号中的命令将会新开启一个子shell独立顺序运行,所以括号中的变量不能够被脚本余下的部分使用。括号中多个命令之间用分号隔开,最后一个命令不需要分号,各命令和括号之间无空格。
1
2
|
#!/bin/bash ( echo "error" ; ls ; pwd ; exit ) |
2.得到命令输出——a=$(command), 等同于a=$`command`,shell扫描一遍命令行,发现了$(command)结构,便将$(command)中的command执行一次,得到其标准输出,再将此输出放到原来命令。得到命令输出传递给变量a。简言之:$(command)执行命令,并返回命令的执行结果。
1
2
3
|
#!/bin/bash isPy27=$(python -V 2>&1 | grep '2.7.' ) echo $isPy27 # 结果:Python 2.7.5 |
3.用于初始化数组——array=(a b c d)。
二、双小括号 (( ))
1.C语言规则运算——$((exp)),exp为符合C语言规则的运算符,表达式。
1
|
[root@localhost ~] # echo $((6-3)) # 结果:3 |
2.可以进行算数运算、比较,可以进行逻辑运算。((expression)):expression可以是任意的数学赋值或比较表达式。
1
2
3
4
5
6
7
8
9
10
11
12
13
|
#!/bin/bash for ((num=0; num<30; num++)); do if (($num <= 10 & $num >= 0)); then echo $num elif (($num <= 20 & $num > 10)); then echo "大于10小于20" else a=5; ((a++)); ((b=$a+20)) echo $a,$b fi done |
3.跨进制运算——二进制、八进制、十六进制运算时,输出结果全都自动转化成了十进制。
1
2
3
4
|
#!/bin/bash echo $((2 #11)) # 结果:3 (2进位转十进制) echo $((8 #32)) # 结果:26 (8进位转十进制) echo $((16 #5f)) # 结果:95 (16进位转十进制) |
三、单中括号 []
四、双中括号 [[ ]]
五、大括号
https://www.cnblogs.com/qlqwjy/p/8684630.html
https://blog.csdn.net/LinearF/article/details/81388568
https://blog.csdn.net/wllinux12138/article/details/82693079