shell 語法
shell 執行命令操作
當shell讀取輸入時,它將執行一系列操作。如果輸入表示註釋的開頭,則shell將忽略註釋符號('#')和該行的其餘部分。
shell 讀取和執行命令時將經過下列操作:
- 從一個文件(Shell腳本)中讀取它的輸入,從作爲參數的字符串到 “-c” 調用選項(調用Bash),或者從用戶的終端。
- 將輸入拆分爲單詞和操作符,遵守所描述的引用規則。這些標記由“元字符”分隔。此步驟執行別名擴展。
- 將令牌解析爲簡單的複合命令。
- 執行各種shell擴展,將擴展令牌分解爲文件名、命令和參數列表。
- 執行任何必要的重定向,並從參數列表中刪除重定向操作符及其操作數。
- 執行命令
- 可選地等待命令完成並收集其退出狀態。
引用(Quoting)
引用被用來去除某些字符或單詞對shell的特殊意義。引用可用於禁用特殊字符的特殊處理,防止保留字被識別,並防止參數擴展。每個shell元字符對於shell都有特殊的意義,必須引用它來表示自己。
- 有三種引用機制:轉義字符、單引號和雙引號。
轉義字符
一個非引用的反斜槓“\”是Bash轉義字符。它保留下一個字符的文字值。
用途:
- 將普通字符轉爲特殊用途,用於表示不能直接顯示的字符,比如後退鍵,回車鍵,等。
- 用來將特殊意義的字符轉換回它原來的意義。
單引號
單引號通常以以'開頭以'結尾,常在兩個單引號之間存儲字符串。單引號不能出現在使用單引號閉合的表達式中,例如:a=' I'm so hot';系統將會報錯。可以使用轉義字符將單引號轉義,例如:a='i\'m so hot';上列語句將不會報錯。
雙引號
與單引號類似,雙引號亦可以用來存儲字符串,雙引號必須轉義才能存在與表達試中,單引號可以之間使用,當雙引號內出現" $ "符號時,shell會試圖解釋該變量或表達式,以$到其後面單詞爲變量名稱。而單引號則不會解釋變量和表達式
註釋
shell 以“ # ” 爲註釋符號。常用於shell文件(shell腳本中),當文件某一行出現符號“#”時,“#”後面一直到行尾,將會被shell忽略。
命令的語法
在shell中,命令格式爲:命令+參數,命令和參數使用空格分隔,參數和參數也使用空格分隔開來。
如:
>echo 1 2 3 4 5
查看命令幫助信息
- 使用參數 -h | --help.在shell中大多數命令都支持:命令 --help|-h 來查看命令的使用說明
- 使用man命令:man命令可以查看命令的man手冊的詳細信息。
- 使用whatis:whatis用來顯示命令的描述
查看shell內置命令(builtin)的使用幫助
使用help命令可以查看內置命令的使用幫助
顯示構建命令的簡短摘要。如果指定了模式,則在所有命令匹配模式上提供詳細的幫助,否則將打印幫助主題列表。
如:
[root@localhost ~]# help true
true: true
Return a successful result.
Exit Status:
Always succeeds.
[root@localhost ~]#
使用info命令查看信息格式文檔
使用info命令可以查看命令的詳細信息文檔,如bash,gawk,sed,grep等命令都可以使用info命令查看其詳細使用文檔。