導讀 | 在剛開始學習inux shell腳本編程時候,對於它的 四則運算以及邏輯運算。估計很多朋友都感覺比較難以接受。特變邏輯運算符”[]”使用時候,必須保證運算符與算數 之間有空格。 四則運算也只能借助:let,expr等命令完成。 今天講的雙括號”(())”結構語句,就是對shell中算數及賦值運算的擴展。 |
使用方法:
語法:
((表達式1,表達式2…))
特點:
1、在雙括號結構中,所有表達式可以像c語言一樣,如:a++,b--等。 2、在雙括號結構中,所有變量可以不加入:“$”符號前綴。 3、雙括號可以進行邏輯運算,四則運算 4、雙括號結構 擴展了for,while,if條件測試運算 5、支持多個表達式運算,各個表達式之間用“,”分開
使用實例:
擴展四則運算
#!/bin/sh a=1; b=2; c=3; ((a=a+1)); echo $a; a=$((a+1,b++,c++)); echo $a,$b,$c
運行結果: ]# sh testsh.sh 2 3,3,4 雙括號結構之間支持多個表達式,然后加減乘除等c語言常用運算符都支持。如果雙括號帶:$,將獲得表達式值,賦值給左邊變量。
擴展邏輯運算
#!/bin/sh a=1; b="ab"; echo $((a>1?8:9)); ((b!="a"))&& echo "err2"; ((a<2))&& echo "ok";
運行結果: ]# sh testsh.sh 9 err2 ok
擴展流程控制語句(邏輯關系式)
#!/bin/sh num=100; total=0; for((i=0;i<=num;i++)); do ((total+=i)); done echo $total; total=0; i=0; while((i=5050));then echo "ok"; fi
運算結果: ]# sh testsh.sh 5050 5050 ok
有了雙括號運算符:[[]],[],test 邏輯運算,已經let,expr 都可以拋到一邊了。
免費提供最新Linux技術教程書籍,為開源技術愛好者努力做得更多更好:https://www.linuxprobe.com/