Linux shell編程(二):shell語法

shell 語法

shell 執行命令操作

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

shell 讀取和執行命令時將經過下列操作:

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

引用(Quoting)

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

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

轉義字符

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

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

單引號

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

雙引號

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

註釋

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

命令的語法

在shell中,命令格式爲:命令+參數,命令和參數使用空格分隔,參數和參數也使用空格分隔開來。
如:
>echo 1 2 3 4 5

查看命令幫助信息

  1. 使用參數 -h | --help.在shell中大多數命令都支持:命令 --help|-h 來查看命令的使用說明
  2. 使用man命令:man命令可以查看命令的man手冊的詳細信息。
  3. 使用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命令查看其詳細使用文檔。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章