linux學習之shell指令碼 ------- 引用與運算子

來源:互聯網
上載者:User

標籤: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指令碼 ------- 引用與運算子

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.