Linux Shell程式設計(12)——操作符
賦值
變數賦值
初始化或改變一個變數的值
=
通用的變數賦值操作符,可以用於數值和字串的賦值
1 var=27
2 category=minerals # "="字元後面不能加空白字元.
不要把"="賦值操作符和=測試操作符搞混了。
# = 用於測試操作符
計算操作符
/除
**求冪
%求模(它返回整數整除一個數後的餘數)
+="加-等(plus-equal)" (把原變數值增加一個常量並重新賦值給變數)
let "var += 5"會使變數var值加了5並把值賦給var.
-="(減-等)minus-equal" (把原變數值減少一個常量並重新賦值給變數)
*="(乘-等)times-equal" (把原變數值乘上一個常量並重新賦值給變數)
let "var *= 4" 使變數var的值乘上4並把值賦給var.
/="(除-等)slash-equal" (把原變數值除以一個常量並重新賦值給變數)
%="(模-等)mod-equal" (把原變數值除以一個常量整除(譯者注:即取模)並重新賦餘數的值給變數)
計算操作符常常出現在expr或let命令的表示式中.
位操作符. 位操作符很少在指令碼中使用。他們主要用於操作和測試從埠或sockets中讀到的資料。“位運算”更多地用於編譯型的語言,比如說C和C++,它們執行起來快地像飛。
位操作符
<<位左移(每移一位相當乘以2)
<<="位左移賦值"
let "var <<= 2" 結果使var的二進位制值左移了二位(相當於乘以4)
>>位右移(每移一位相當除以2)
>>="位右移賦值"(和<<=相反)
&位與
&="位於賦值"
|位或
|="位或賦值"
~位反
!位非
^位或
^="位或賦值"
邏輯操作符
&&邏輯與
依據上下文,&&也可以在與列表(and list)連線命令中。
||邏輯或
Bash測試由邏輯操作符連線起來的每一個表示式的退出狀態。
變數賦值
初始化或改變一個變數的值
=
通用的變數賦值操作符,可以用於數值和字串的賦值
1 var=27
2 category=minerals # "="字元後面不能加空白字元.
不要把"="賦值操作符和=測試操作符搞混了。
# = 用於測試操作符
if [ "$string1" = "$string2" ]
# if [ "X$string1" = "X$string2" ] 會更安全,
# 它為了防止其中有一個字串為空時產生錯誤資訊.
# (增加的"X"字元可以互相抵消.)
then
command
fi
計算操作符
+加
-減
*乘/除
**求冪
# Bash在版本2.02引入了"**"求冪操作符.
let "z=5**3"
echo "z = $z" # z = 125
%求模(它返回整數整除一個數後的餘數)
bash$ expr 5 % 3
2
5/3 = 1 餘 2
+="加-等(plus-equal)" (把原變數值增加一個常量並重新賦值給變數)
let "var += 5"會使變數var值加了5並把值賦給var.
-="(減-等)minus-equal" (把原變數值減少一個常量並重新賦值給變數)
*="(乘-等)times-equal" (把原變數值乘上一個常量並重新賦值給變數)
let "var *= 4" 使變數var的值乘上4並把值賦給var.
/="(除-等)slash-equal" (把原變數值除以一個常量並重新賦值給變數)
%="(模-等)mod-equal" (把原變數值除以一個常量整除(譯者注:即取模)並重新賦餘數的值給變數)
計算操作符常常出現在expr或let命令的表示式中.
位操作符. 位操作符很少在指令碼中使用。他們主要用於操作和測試從埠或sockets中讀到的資料。“位運算”更多地用於編譯型的語言,比如說C和C++,它們執行起來快地像飛。
位操作符
<<位左移(每移一位相當乘以2)
<<="位左移賦值"
let "var <<= 2" 結果使var的二進位制值左移了二位(相當於乘以4)
>>位右移(每移一位相當除以2)
>>="位右移賦值"(和<<=相反)
&位與
&="位於賦值"
|位或
|="位或賦值"
~位反
!位非
^位或
^="位或賦值"
邏輯操作符
&&邏輯與
if [ $condition1 ] && [ $condition2 ]
# 等同於: if [ $condition1 -a $condition2 ]
# 如果condition1和condition2都為真則返回真...
if [[ $condition1 && $condition2 ]] # Also works.
# 注意&&操作不能在[ ... ]結構中使用.
依據上下文,&&也可以在與列表(and list)連線命令中。
||邏輯或
if [ $condition1 ] || [ $condition2 ]
# 等同於: if [ $condition1 -o $condition2 ]
# 如果condition1和condition2有一個為真則返回真...
if [[ $condition1 || $condition2 ]] # Also works.
# 注意||操作不能在[ ... ]結構中使用.
Bash測試由邏輯操作符連線起來的每一個表示式的退出狀態。
相關文章
- Linux系統程式設計(12)——shell基礎Linux程式設計
- Linux Shell程式設計(1)——shell程式設計簡介Linux程式設計
- linux shell 程式設計Linux程式設計
- linux shell程式設計Linux程式設計
- Linux Shell程式設計(27)——子shellLinux程式設計
- Linux 程式設計之Shell程式設計(轉)Linux程式設計
- Linux之shell程式設計Linux程式設計
- Linux Shell程式設計(1)Linux程式設計
- Linux Shell程式設計(2)Linux程式設計
- Linux Shell程式設計(2)——第一個shell程式Linux程式設計
- Linux Shell程式設計(4)——shell特殊字元(上)Linux程式設計字元
- Linux Shell程式設計(5)——shell特殊字元(下)Linux程式設計字元
- linux下的SHELL程式設計Linux程式設計
- Linux Shell程式設計(28)——程式替換Linux程式設計
- Linux Shell程式設計(3)——執行shell指令碼Linux程式設計指令碼
- 前端學習 linux —— shell 程式設計前端Linux程式設計
- Linux Shell程式設計(15)——操作字串Linux程式設計字串
- Linux Shell程式設計(16)——迴圈Linux程式設計
- Linux Shell程式設計(29)——函式Linux程式設計函式
- Linux Shell程式設計(30)——別名Linux程式設計
- Linux Shell 程式設計實戰技巧Linux程式設計
- Linux的shell程式設計(一)(轉)Linux程式設計
- Linux的shell程式設計(二)(轉)Linux程式設計
- Linux的shell程式設計(三)(轉)Linux程式設計
- Linux的shell程式設計(四)(轉)Linux程式設計
- Linux入門---(三)Shell程式設計Linux程式設計
- 如何學習shell程式設計?Linux運維學習shell程式設計是什麼程式設計Linux運維
- 怎樣用 Bash 程式設計:邏輯操作符和 shell 擴充套件程式設計套件
- shell程式設計程式設計
- 【學習】Linux Shell指令碼程式設計Linux指令碼程式設計
- Linux Shell程式設計(10)——引用變數Linux程式設計變數
- Linux Shell程式設計(13)——數字常量Linux程式設計
- Linux Shell程式設計(18)—— 迴圈控制Linux程式設計
- Linux Shell程式設計(20)——基本命令Linux程式設計
- Linux Shell程式設計(21)——複雜命令Linux程式設計
- Linux Shell程式設計(24)——命令替換Linux程式設計
- Linux Shell 程式設計學習筆記Linux程式設計筆記
- 玩轉Linux – shell 程式設計基礎Linux程式設計