Linux shell編程(二):shell語法

shell 語法

shell 執行命令操做

當shell讀取輸入時,它將執行一系列操做。若是輸入表示註釋的開頭,則shell將忽略註釋符號('#')和該行的其他部分。shell

shell 讀取和執行命令時將通過下列操做:bash

  1. 從一個文件(Shell腳本)中讀取它的輸入,從做爲參數的字符串到 「-c」 調用選項(調用Bash),或者從用戶的終端。
  2. 將輸入拆分爲單詞和操做符,遵照所描述的引用規則。這些標記由「元字符」分隔。此步驟執行別名擴展。
  3. 將令牌解析爲簡單的複合命令。
  4. 執行各類shell擴展,將擴展令牌分解爲文件名、命令和參數列表。
  5. 執行任何須要的重定向,並從參數列表中刪除重定向操做符及其操做數。
  6. 執行命令
  7. 可選地等待命令完成並收集其退出狀態。

引用(Quoting)

引用被用來去除某些字符或單詞對shell的特殊意義。引用可用於禁用特殊字符的特殊處理,防止保留字被識別,並防止參數擴展。每一個shell元字符對於shell都有特殊的意義,必須引用它來表示本身。ide

  • 有三種引用機制:轉義字符、單引號和雙引號。

轉義字符

一個非引用的反斜槓「\」是Bash轉義字符。它保留下一個字符的文字值。
用途:ui

  1. 將普通字符轉爲特殊用途,用於表示不能直接顯示的字符,好比後退鍵,回車鍵,等。
  2. 用來將特殊意義的字符轉換回它原來的意義。

單引號

單引號一般以以'開頭以'結尾,常在兩個單引號之間存儲字符串。單引號不能出如今使用單引號閉合的表達式中,例如:a=' I'm so hot';系統將會報錯。可使用轉義字符將單引號轉義,例如:a='i\'m so hot';上列語句將不會報錯。code

雙引號

與單引號相似,雙引號亦能夠用來存儲字符串,雙引號必須轉義才能存在與表達試中,單引號能夠之間使用,當雙引號內出現" $ "符號時,shell會試圖解釋該變量或表達式,以$到其後面單詞爲變量名稱。而單引號則不會解釋變量和表達式文檔

註釋

shell 以「 # 」 爲註釋符號。經常使用於shell文件(shell腳本中),當文件某一行出現符號「#」時,「#」後面一直到行尾,將會被shell忽略。字符串

命令的語法

在shell中,命令格式爲:命令+參數,命令和參數使用空格分隔,參數和參數也使用空格分隔開來。
如:it

echo 1 2 3 4 5class

查看命令幫助信息

  1. 使用參數 -h | --help.在shell中大多數命令都支持:命令 --help|-h 來查看命令的使用說明
  2. 使用man命令:man命令能夠查看命令的man手冊的詳細信息。
  3. 使用whatis:whatis用來顯示命令的描述

查看shell內置命令(builtin)的使用幫助

使用help命令能夠查看內置命令的使用幫助
顯示構建命令的簡短摘要。若是指定了模式,則在全部命令匹配模式上提供詳細的幫助,不然將打印幫助主題列表。awk

如:

[root@localhost ~]# help true
true: true
    Return a successful result.
    Exit Status:
    Always succeeds.
[root@localhost ~]#

使用info命令查看信息格式文檔

使用info命令能夠查看命令的詳細信息文檔,如bash,gawk,sed,grep等命令均可以使用info命令查看其詳細使用文檔。

相關文章
相關標籤/搜索