Linux學習之shell變數的運算

2021-06-22 04:26:57 字數 1339 閱讀 9991

和其他語言一樣,變數的運算包括數**算和邏輯運算。

一、變數的數**算

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.中間不...