Linux:bash的細節——極其重要又極易出錯

來源:互聯網
上載者:User

變數運算子

父shell 指令碼總是運行在 子shell 環境中。子shell 只能看到 環境變數的副本,而不能看到父shell的 本地變數;父shell 看不見子shell的本地變數,但可以看見子shell匯出的環境變數

大括弧擴充{},優先順序高於變數替換!左、右大括弧{}和其中的各個內容之間必須緊緊相連,不能有空白;內容之間也必須通過逗號“,”緊緊相連!

shell變數預設類型是字串,可以使用雙引號“ "字串" ”或單引號“ '字串' ”來明確表示,二者的區別是雙引號字串支援$變數擴充!

變數擴充${}  左、右大括弧{}和其中的變數標識符之間必須緊緊相連,不能有空白!預設,bash對變數的名稱識別是字!

測試運算式運算子 “[ express ]” 必須和其他的express之間留有空白!

測試運算式運算子 “[ express ]” 必須和其他的express之間留有空白!另外,express中的運算子和變數之間必須留有空白,否則,你死了!

 

將變數作為數實值型別進行運算 “$[express]”,express與兩側留不留空白均可!

“` 命令`”用來執行命令,擷取命令的輸出資訊,命令和左右“`”符號之間可以留有空白!

跟在命令後面的不加引號的字串會進行萬用字元“*、?”的替換,切記!如果不想使用引號,可以使用逸出字元來轉義這些萬用字元

 

 

 

預設,bash以一行為一個命令,依次執行。可以通過分號“;” 把多個命令寫在一行,從左至右依次執行各個命令!

&&分隔字元告訴bash,只有前面的命令執行成功才執行後面的命令;是if語句的 運算子形式

||分隔字元告訴bash,只有前面的命令執行失敗才執行後面的命令;是if語句的 運算子形式

case語句中的特殊運算子 “ 字串) ” 和 break 語句運算子 “ ;; ”。 “ 字串) ” 字串和運算子之間不能有空白;break運算子則可以保留空白!

hereisdocument 運算子 “<<identity ..... identity”  類似於管道

聯繫我們

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