標籤:shell 運算子
[本文是自己學習所做筆記,歡迎轉載,但請註明出處:http://blog.csdn.net/jesson20121020]
變數和替換操作,在指令碼中執行變數替換時最容易犯的一個錯誤就是引用錯誤,所以有必要看一下各種引號的代表的意義與作用。
引用:
雙引號" "
使用雙引號可引用除字元$、`、\ 外的任一字元或字串。如下所示:
[email protected]:~/develop/workspace/shell_workspace$ echo -e "hello $SHELL '\n* jesson`echo 20121020`"hello /bin/bash '* jesson20121020
單引號‘ ‘
單引號與雙引號類似,不同的是shell會忽略任何引用值。換句話說,如果屏蔽了其特殊含義(不會屏蔽\),則會將引號裡的所有字元,包括引號都作為一個字串。
還是以上個例子來說明,我們這次將外面的雙引號換成單引號。
[email protected]:~/develop/workspace/shell_workspace$ echo -e 'hello $SHELL \n* jesson`echo 20121020`'hello $SHELL * jesson`echo 20121020`
可以看出,除了\n,其他的特殊符號全被屏蔽了。
反引號``
反引號用於設定系統命令的輸出到變數。shell將反引號中的內容作為一個系統命令,並執行其內容。
[email protected]:~/develop/workspace/shell_workspace$ echo "hello `echo 20121020`"hello 20121020
反斜線 \
反斜線可以屏蔽特殊含義。下述字元包含有特殊意義:& * + ^ $ ` " | ?。
[email protected]:~/develop/workspace/shell_workspace$ echo *helloworld.sh parm.sh searchfile.sh[email protected]:~/develop/workspace/shell_workspace$ echo \**
運算子:
運算子是對電腦發出的指令
運算對象:
- 數字,字元
- 變數
- 運算式:運算子和運算對象的組合體
運算子類型:
&[ ] 告訴shell對方括弧中的運算式求值。
按位元運算符:
~(反運算子),<<(左移) ,>>(右移),&(與),|(或),^(異或)
[email protected]:~/develop/workspace/shell_workspace$ echo $[ ~2 ]-3[email protected]:~/develop/workspace/shell_workspace$ echo $[ 2<<1 ]4[email protected]:~/develop/workspace/shell_workspace$ echo $[ 2>>1 ]1[email protected]:~/develop/workspace/shell_workspace$ echo $[ 2&3 ]2[email protected]:~/develop/workspace/shell_workspace$ echo $[ 2|3 ]3[email protected]:~/develop/workspace/shell_workspace$ echo $[ 2^3 ]1
邏輯運算子:
&&(邏輯與),||(邏輯或),>,==,<,!=
[email protected]:~/develop/workspace/shell_workspace$ echo $[ 1&1 ]1[email protected]:~/develop/workspace/shell_workspace$ echo $[ 1&0 ]0[email protected]:~/develop/workspace/shell_workspace$ echo $[ 1|0 ]1[email protected]:~/develop/workspace/shell_workspace$ echo $[ 1|1 ]1[email protected]:~/develop/workspace/shell_workspace$ echo $[ 0|0 ]0
賦值運算子:
=, +=, -=, *=, /=, %=, &=, ^=, |=, <<=, >>=
let $count=$count + $change
let $count+=$change
[email protected]:~/develop/workspace/shell_workspace$ var=10[email protected]:~/develop/workspace/shell_workspace$ let var+=4[email protected]:~/develop/workspace/shell_workspace$ echo $var14
運算式替換
$[ ] 和$(()) 用於運算式求值。
$[ ]可以接受不同基數的數字:
-[ base#n ] n表示基數從2到36的任何基數。
[email protected]:~/develop/workspace/shell_workspace$ echo $((8+6))14[email protected]:~/develop/workspace/shell_workspace$ echo $[10#8+1]9
linux學習之shell指令碼 ------- 引用與運算子