expr 表示式
expr 對表示式
的格式有幾點特殊的要求:
表示式
中的運算子、數位、變數和小括號的左右兩邊至少要有一個空格,否則會報錯。
進行跳脫(遮蔽其特殊含義),比如乘號*
和小括號()
,如果不用
跳脫,那麼 Shell 會把它們誤解為正規表示式中的符號(*
對應萬用字元,()
對應分組)。$
字首。[c.biancheng.net]$ expr 2 +3 #錯誤:加號和 3 之前沒有空格 expr: 語法錯誤 [c.biancheng.net]$ expr 2 + 3 #這樣才是正確的 5 [c.biancheng.net]$ expr 4 * 5 #錯誤:乘號沒有跳脫 expr: 語法錯誤 [c.biancheng.net]$ expr 4 * 5 #使用 跳脫後才是正確的 20 [c.biancheng.net]$ expr ( 2 + 3 ) * 4 #小括號也需要跳脫 bash: 未預期的符號 `2' 附近有語法錯誤 [c.biancheng.net]$ expr ( 2 + 3 ) * 4 #使用 跳脫後才是正確的 20 [c.biancheng.net]$ n=3 [c.biancheng.net]$ expr n + 2 #使用變數時要加 $ expr: 非整數引數 [c.biancheng.net]$ expr $n + 2 #加上 $ 才是正確的 5 [c.biancheng.net]$ m=7 [c.biancheng.net]$ expr $m * ( $n + 5 ) 56以上是直接使用 expr 命令,計算結果會直接輸出,如果你希望將計算結果賦值給變數,那麼需要將整個表示式用反引號
``
(位於 Tab 鍵的上方)包圍起來,請看下面的例子。[c.biancheng.net]$ m=5 [c.biancheng.net]$ n=`expr $m + 10` [c.biancheng.net]$ echo $n 15