和其他語言一樣,變數的運算包括數**算和邏輯運算。
一、變數的數**算
shell中變數的數**算有些特殊,下面簡要介紹:
首先,算術運算子和其他語言大致相同,區別在於表示式不同。
+對兩個變數做加法。
-對兩個變數做減法。
*對兩個變數做乘法。
/對兩個變數做除法。
**對兩個變數做冪運算。
%取模運算,第乙個變數除以第二個變數求餘數。
+=加等於,在自身基礎上加第二個變數。
-=減等於,在第乙個變數的基礎上減去第二個變數。
*=乘等於,在第乙個變數的基礎上乘以第二個變數。
/=除等於,在第乙個變數的基礎上除以第二個變數。
%=取模賦值,第乙個變數對第二個變數取模運算,再賦值給第乙個變數。
shell的數學表示式大致有以下幾種:
((i=$j+$k)) 等價於 i=`expr $j + $k`
((i=$j-$k)) 等價於 i=`expr $j -$k`
((i=$j*$k)) 等價於 i=`expr $j \*$k`
((i=$j/$k)) 等價於 i=`expr $j /$k`
# 第一種用法,let
var=1
let "var+=1"
echo $var
輸出:2
# 也可以不加""
let var=$var+1
echo $var
輸出:3
# 也可以不加$直接引用
let var+=1
echo $var
輸出:4
# 方冪運算用**
let var=var**2
echo $var
輸出:16
# 第二種用法 (())
((var+=1))
echo $var
輸出:17
# 第三種用法 $,中引用的變數要加$
var=$[$var+1]
echo $var
輸出:18
# 第四種 使用 expr
var=`expr $var / 10`
echo $var
輸出:1
# 前面的都僅支援整數運算
# 第五種 bc 支援浮點
var=`echo "$var * 10.5" |bc`
echo $var
輸出:10.5
關於(())的使用可以參考:
另外,強大的awk也支援各種數**算。很多上面不成立的寫法,在awk中可能成立。
比如echo "4,5" |awk 'begin '就可以輸出:4/5
二、變數的邏輯運算
shell學習之常見系統變數
執行方式shell name.sh表示shell指令碼的名字 sh shell name.sh bash shell name.sh shell name.sh 常見系統變數 變數解釋 0當前程式的名稱 n n 1 9 第n個引數比如 1 2 當前程式所有的引數,不包括程式名稱和程式內寫好的引數,通...
Linux學習之路 shell變數(一)
一 變數的顯示與設定 1 變數的顯示運用echo命令 符號 上圖例子顯示的是系統變數,咱們可以自己設定變數 2 設定變數運用 符號 設定了變數niu 值為 niunai 變數設定規則 1 等號兩邊不能有空格的出現 2 變數只能是數字和字母的組合,但數字不能在前面 3 變數值可以用雙引號和單引號將值內...
Linux學習之shell指令碼
第一行 bin bash 標記指令碼的直譯器 指令碼 bin bash echo hello world 賦予執行許可權 chmod x test.sh 執行指令碼 test.sh 定義變數時不需要 符號 td date y m d 1.變數名和符號之間不能有空格 2.首個字元必須為字母 3.中間不...