shell位操作符

來源:互聯網
上載者:User

位操作符.

位操作符在shell指令碼中極少使用。它們最主要的用途看起來就是操作和test從sockets中

讀出的變數."Bit flipping"與編譯語言的聯絡很緊密,比如c/c++,在這種語言中它可以

運行得足夠快.(原文有處on the fly,我查了一下,好像是沒事乾的意思,沒理解)

<<        左移1位(每次左移都將乘2)

<<=        左移幾位,=號後邊將給出左移幾位

let "var <<= 2"就是左移2位(就是乘4)

>>        右移1位(每次右移都將除2)

>>=        右移幾位

&        按位與

&=        按位與賦值

|        按位或

|=        按位或賦值

~        按位非

!        按位否?(沒理解和上邊的~有什麼區別?),感覺是應該放到下邊的邏輯操作中

^        按位異或XOR

^=        異或賦值

邏輯操作:

&&        邏輯與

1 if [ $condition1 ] && [ $condition2 ]

2 # 與:  if [ $condition1 -a $condition2 ] 相同

3 # 如果condition1和condition2都為true,那結果就為true.

5 if [[ $condition1 && $condition2 ]]    # 也可以.

6 # 注意&&不允許出現在[ ... ]中.

注意:&&也可以用在and list中(見25章),但是使用的時候需要依賴上下文.

||        邏輯或

1 if [ $condition1 ] || [ $condition2 ]

2 # 與:  if [ $condition1 -o $condition2 ] 相同

3 # 如果condition1或condition2為true,那結果就為true.

5 if [[ $condition1 || $condition2 ]]    # 也可以

6 # 注意||不允許出現在[ ... ]中.

注意:Bash將test每個串連到邏輯操作的狀態的退出狀態.

例:

if [ "$a" -eq 24 ] && [ "$b" -eq 47 ] 與if [ "$a" -eq 24 -a "$b" -eq 47 ]得到同一結果。

a=1

let "a=a|0x4"

echo $a

if [ $((a|0x4)) -eq 5 ];then

echo "ada"

fi

原文:

http://blog.csdn.net/zhrmghl/article/details/1346409

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.