Shell—各種括號的用法
阿新 • • 發佈:2022-05-21
括號的種類
- 小括號,圓括號 ( )
- 中括號,方括號 [ ]
- 大括號、花括號 { }
一、單小括號 ()
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