bash 復合命令

2021-07-11 21:12:28 字數 2991 閱讀 7366

復合命令是以下中的乙個。在大多數情況下,在乙個命令的描述的列表可以從命令的其餘部分由乙個或多個換行符來分離,並可以隨後代替分號的換行。

(list) list是在子shell環境中執行影響。shell環境變數賦值,並內建命令在命令完成後不繼續有效。返回狀態是列表的退出狀態。

list是當前shell環境中執行。list必須以新行或分號結束。這被稱為一組命令。返回狀態是list的退出狀態。注意與元字元(和),是保留字,並在那裡被允許保留字被認可必須發生。由於它們不會導致斷字,他們必須從列表用空格或其他shell元字元分隔。

((expression)) 表達被根據下算術求下面描述的規則進行評價。如果表示式的值是非零,則返回0;否則返回狀態是1。這完全等同於 let expression.

[[ expression ]] 返回取決於條件表示式表示式求值0或1的狀態。表示式由下條件表示式如下所述的初選。之間的單詞不執行單詞拆分和路徑擴充套件[[ and ]].波浪線擴充套件,引數和變數擴充套件,算術擴充套件,命令替換,函式替換和引用的去除執行。條件操作符例如 -f 必須不帶引號被確認為初選。

當使用 【【, < 和》元操作排序字典順序使用使用當前區域設定。

看到測試內建命令的說明(第shell內建下面命令)的引數(i.e.missing引數)的處理。

當==和!=元操作符所使用的,操作符按照右操作符。彷彿extglob外殼選項已啟用。=運算子相當於==。如果shell選項nocasematch使能,而不考慮字母的情況下進行比賽。返回值是0,如果匹配字串(==)或不匹配(!=)的模式,否則為1。模式的任何部分可以被引用,強制將匹配作為乙個字串所引用部分。

另外乙個二元運算子,=〜,是可用的,具有相同的優先順序==和!=。當它被使用時,串到操作員的右側被認為是乙個擴充套件正規表示式和相應的匹配.返回值是0,如果該字串的模式匹配,否則為1。如果正規表示式語法不正確,則條件表示式返回值為2。如果shell選項nocasematch使能,而不考慮字母的情況下進行比賽。模式的任何部分可以被引用,強制將匹配作為乙個字串所引用部分。正規表示式中括號表示式必須謹慎對待,因為正常的引號字元失去括號它們的含義。如果該模式被儲存在乙個shell變數,引用變數擴大強制匹配作為乙個字串的整個格局。正規表示式內括號內的子表示式匹配的子字串儲存在陣列變數bash_rematch。索引為0 bash_rematch的元素是匹配整個規範表示式的串的部分。與索引n bash_rematch的元件是相匹配的第n個括號的子表示式的串的部分。

表示式可以用下列操作符結合,優先順序遞減的順序列出:

( expression )

返回表示式的值。這可以用來覆蓋運營商的正常優先順序。

(!expression)

如果表示式為假,這個結果為真。

expression1 && expression2

expression1 和expression2 二者為真,則表示式為真;否則為假。

expression1 || expression2

如果expression1和expression2兩者為假,則表示式為假;否則為真。

&&和||如果表示式1的值是足以確定整個條件表示式的返回值運算不評價表示式2。

for name [ [ in [ word … ] ] ; ] do list ; done

以下n個字的列表展開,生成的專案的列表。變數名稱設定為這個列表反過來的每個元素,每一次執行列表。如果省略了字,for命令對於設定每個位置引數執行一次表。返回狀態是最後執行的命令的退出狀態。如果沒有命令執行,擴充套件的名稱為0

for (( expr1 ; expr2 ; expr3 )) ; do list ; done

首先,算術表示式expr1的根據下算術求下面描述的規則進行評價。算術表示式expr2為然後重複計算,直到它等於0。每次表示式2計算為乙個非零值,則執行列表和算術表示式表示式3進行評價。如果省略任何表示式,它的行為就好像它的計算結果為1。返回值是執行,還是假的,如果任何表示式非法在列表中的最後乙個命令的退出狀態。

select name [ in word ] ; do list ; done

以下n個字的列表展開,生成的專案的列表。這組擴大的話印在標準錯誤上,每個前面加上乙個數字。如果省略n個字的位置引數。然後,ps3提示,並顯示一條線從標準輸入讀取。如果該行包括對應於所顯示的字之一的一些,那麼姓名的值被設定為字。如果該行是空的,將再次顯示單詞和提示。如果eof被讀取後,命令完成。直到執行break命令列表是每次選擇後執行。select的退出狀態,如果沒有命令被執行list中執行的最後乙個命令的退出狀態,或零。

case word in [ [(] pattern [ | pattern ] … ) list ;; ] … esac

案例命令首先擴大了字,並嘗試匹配它反過來每個模式,使用相同的匹配規則路徑擴充套件.這個詞是用波浪線擴充套件,引數和變數擴充套件,算術替換,命令替換程序替換和引用的刪除擴充套件。檢查每個模式都採用波浪線擴充套件,引數和變數擴充套件,算術替換,命令替換和程序替換擴大。如果shell選項nocasematch使能,而不考慮字母的情況下進行比賽。當找到乙個匹配,則執行相應的清單。使用;&代替;;使執行與下一組模式相關聯的列表。使用;;&代替;;的使殼中的宣告,以測試下一圖案列表中,如果有的話,並在成功的匹配執行任何相關的列表。退出狀態是零,如果沒有模式匹配。否則,它是名單中最後執行的命令的退出狀態。

if list; then list; [ elif list; then list; ] … [ else list; ] fi

被執行,如果列表。如果其退出狀態為零,則執行該列表。否則,每個elif的名單依次執行,如果其退出狀態為零,則執行相應的話列表和命令完成。否則,執行其他列表中,如果存在的話。退出狀態是最後執行的命令的退出狀態,或者零,如果所有條件都不滿足。

while list-1; do list-2; done

until list-1; do list-2; done

while命令連續執行清單列表-2,只要在列表列表-1返回零退出狀態的最後乙個命令。在直到命令是相同的,而命令,除了測試是否定的;只要在列表1中最後乙個命令返回非零退出狀態列表-2執行。在while和until命令的退出狀態是,如果被執行沒有在列表-2,或零最後執行的命令的退出狀態。

bash 內部命令

bash命令解釋套裝程式包含了一些內部命令。內部命令在目錄列表時是看不見的,它們由shell本身提供。常用的內部命令有 echo,eval,exec,export,readonly,read,shift,wait和點 下面簡單介紹其命令格式和功能。1 echo 命令格式 echo arg 功能 在螢...

Bash命令全集

ac 輸出使用者連線時間 access 確定檔案是否可以訪問訪問 ali list mail aliases apm 查詢高階電源管理 apm bios apropos search the whatis database for strings at batch,atq,atrm 排隊 檢查或刪除...

熟悉BASH 命令

ls ls help檢視引數 相當於windows下的dir命令,作用是列出當前目錄裡面的內容 ls l 長格式顯示檔案資訊 ls la 長格式顯示檔案資訊,包括隱藏檔案 linux下以 開頭的檔案起始來命名的檔案或資料夾,都是隱藏檔案 ls alh h引數單位顯示檔案大小 ls alh sort ...