一類是計算表示式的值
另一類是計算整數算術表示式
命令:expr
功能:expr命令可以做字串比較操作和計算表示式的值。
其中,expr命令的字串比較操作基本被[[…]]結構代替。不過,expr的另乙個功能,計算整數表示式的值,還是會經常用到的。
expr命令支援的整數算術運算表示式格式:
① 求和
expr exp1 + exp2
注意:中間必須要有空格,下同
② 求差
expr exp1 – exp2
③ 求積
expr exp1 \* exp2
注意求積表示式的區別,在「*」前要加轉義符號「\」
④ 求商
expr exp1 / exp2
⑤ 取餘
expr exp1 % exp2
舉例:function_testtwo( )
echo `expr $1 + 8` >>test7
echo $1
echo `expr $1 + 1` >>test7
注意:expr $1 + 8這是一句命令,如果想要引用這個命令的結果,則必須用命令替換來獲取命令的輸出。可以通過反引號或者$(…)來進行命令替換。
命令:let 或 ((…))
注意區分「((…))」與「[[…]]」,乙個是計算整數表示式命令,乙個是測試命令test的簡寫。
支援的命令:
① 求和
let var=exp1+exp2
let 「var=exp1+exp2」
((var = exp1 + exp2))
分析:三種寫法,結果完全一樣。同時,第一種寫法,整數算術表示式之間決不能有空格。剩下兩種寫法,在任何地方加不加空格沒區別,包括等號兩邊,下同 ↓↓
② 求差
let var=exp1-exp2
③ 求積
let var=exp1*exp2
④ 求商
let var=exp1/exp2
⑤ 取餘
let var=exp1%exp2
除了上述五種算術運算之外,let和((…))結構還支援+=、-=、*=、/=、%=,就不一一羅列了,基本差不多寫法。
expr命令相對於let或((…))命令來說的區別:
expr命令是計算表示式的值,並返回表示式最終的計算結果。
雖然let和((…))命令也可以計算表示式的值,但是,並不會返回表示式的計算結果,而是返回的是一種出口狀態。如果表示式的計算結果為0,則出口狀態為1;表示式的計算結果非0,出口狀態為0。
總結來說就是:let和((…))命令的計算表示式功能一般沒用,expr用來計算並返回表示式的最終結果。反過來同樣適用,let和((…))命令主要用來計算等式,而expr命令並不能。所以,let和((…))命令與expr命令的分工還是挺明確的。
shell指令碼 命令
命令連線符 表示不管前面是否執行成功都要執行 表示前面執行成功才執行後面 表示前面執行失敗才執行後面 read命令 read 選項 值 read p 提示語句 n 字元個數 t 時間秒 s 不顯示 運算子 expr 3 2 結果賦值 sum expr 3 2 或者 sum 3 2 乘法expr 3 ...
shell指令碼命令
1.建立檔案 home test test.log rootdir home test testfile rootdir test.log touch testfile 2.如果檔案存在則刪除檔案 if f testfile then rm rf testfile fi3.如果檔案不存在則建立檔案 ...
shell 指令碼命令學習
set u 指令碼中有不存在變數,丟擲異常 set x 用來在執行結果之前,先輸出執行的哪一行命令 set e 只要發生錯誤就終止執行 set euxo pipefail 放在所有shell指令碼的開頭 echo vars 傳遞給指令碼或函式的所有引數 echo vars count num 傳遞給...