shell指令碼命令數值計算的相關介紹

2022-10-10 15:54:11 字數 1400 閱讀 4809

一類是計算表示式的值

另一類是計算整數算術表示式

命令: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 傳遞給...