Bash指令語法和解析方式

2022-07-15 06:18:08 字數 2299 閱讀 3595

一、命名語法

一條bash指令的的命名一般包含三個部分:command(指令);option(選項);argument(引數)。

命名的格式為:command option argument。

ls -l -f file1 file2 file3

-l:以單行格式輸出檔案詳細資訊

-f:在每個輸出項後面追加檔案的型別識別符號,具體含義包括:

「*」表示具有可執行許可權的普通檔案;

「/」表示目錄。「@」表示符號鏈結;

「|」表示命令管道fifo;

「=」表示sockets套接字;

當檔案為普通檔案時,不輸出任何的字元。

選項

對於選項(option)型別有兩種:

1)短選項(short option):由乙個連字元和乙個字母構成,例如:-a, -s等;

2)長選項(long options):由兩個連字元和一些大小寫字母組合的單詞構成,例如:--size,--help等

通常,乙個程式會提供short option和long options兩種形式,例如:ls -a,--all。另外,短選項(short option)是可以合併的,例如:-sh表示-s和-h的組合,如果要表示為乙個選項需要用長選項--sh。

不是所有的linux命令都遵循以上的規則,例如:

find -type d -mindepth 2

引數

1、可以是零個或者多個:有預設值;不需要引數。

2、可以是乙個或者多個。

二、語法的描述規則

1、方括號中的項是可選的;

2、不在方括號中或者是在大括號中的項是必選的;

3、黑體字必須按原樣準確鍵入;

4、斜體字必須使用適當的值代替;

5、後面接省略號的引數可以多次重複。

如:

ls [abcdefghloiu@abcdefghlkj][file...]

6、如果乙個單獨的選項和乙個引數組合在一起,那麼該選項和引數必須同時使用,如:

find [-h][-l][-p][-d][-d debugopts][-o level][path...][expression]

7、由|(豎線)字元分開的兩個或者多個項,表示可以從這個列表中選擇乙個項,如:

who [option]...[file|arg1 arg2]

三、一次輸入多條命令

1、以」;「隔開時,如:

date;cal

cal;date

注:當前者執行失敗時,後者就不會執行

2、以「||」隔開時,如:

date||cal

cal||date

注:當前者執行失敗時,後者才會執行

四、強引用和弱引用

1、弱引用 ""

echo "lucky number is $"

輸出的結果為:

lucky number is 12324(隨機數)

2、強引用 ' '

echo 'lucky number is $'

輸出的結果為:

lucky number is $

為了弄清楚引起這兩種引用的差異的原因。我們需要去了解命令列解析的相關知識。

命令列解析

命令列的解析過程:

1、根據$(internal filed separator)將其拆分為多個欄位word;

2、對其中的(metacharacter)元字元進行處理;

3、對命令進行重組並執行。

補充:元字元包括

|:管道 ...:省略

:界定變數範圍

強引用' '內的所有meta元字元被關閉;

弱引用" "內的大部分meta元字元被關閉,部分被保留,如$,等。

關於強引用和弱引用的小練習:

$ a="b c"

$ echo "$a" 輸出b c

$ echo '$a' 輸出$a

$ echo " '$a' " 輸出'b c'

$ echo ' "$a" ' 輸出"$a"

$ echo ' '$a' ' 輸出b c

Nginx Location 指令語法解析

本文翻譯自 www.keycdn.com support ngi nginx location是使用 nginx 的過程中必須要掌握的技能,無論是在server blocks還是其他location blocks中都會用到,這篇文章簡單介紹了當請求來臨時location指令是如何處理客戶端uri請求...

Dockerfile FROM指令 語法解析

凡是編寫dockerfile,幾乎開始都會是from命令,它決定了dockerfile構建出的映象為何物,本文就來了解一下from的語法 語義以及對應的示例。語法 from platform as from platform as from platform as 語義1.from指令開始乙個新的構...

Dockerfile RUN指令 語法解析

docker通過dockerfile建立映象時,run和cmd是相當重要的命令,本文對這run指令進行解析。run 語法 shell形式,命令在shell中執行,預設情況下,linux是 bin sh c windows是cmd s c run exec形式.run executable param...