Shell指令碼通用命令符號解析

2021-07-12 05:21:55 字數 2133 閱讀 2627

'string' 單引號 (single quote)

被單引號用括住的內容,將被視為單一字串。在引號內的代表變數的$符號,沒有作用,也就是說,他被視為一般符號處理,防止任何變數替換。 

heyyou=homeecho

'$heyyou'

# we get $heyyou 

\"string\" 雙引號 (double quote)

被雙引號用括住的內容,將被視為單一字串。它防止萬用字元擴充套件,但允許變數擴充套件。這點與單引數的處理方式不同。 

heyyou=homeecho \

"$heyyou

\" # we get home 

; 分號 (command separator)

在 shell 中,擔任\"

連續指令

\"功能的符號就是\"分號\"。譬如以下的例子:cd ~/backup ; mkdir startup ;cp ~/.* startup/. 

~ 帳戶的 home 目錄

# 井號 (comments)

這幾乎是個滿場都有的符號,除了先前已經提過的\"第一行\" 

#!/bin/bash 

井號也常出現在一行的開頭,或者位於完整指令之後,這類情況表示符號後面的是註解文字,不會被執行。 

# this line is comments. 

echo \"a = $a\" # a = 0 

由於這個特性,當臨時不想執行某行指令時,只需在該行開頭加上 # 就行了。這常用在撰寫過程中。

, 逗點 (comma,標點中的逗號)

這個符號常運用在運算當中當做\"區隔\"用途。如下例 

#!/bin/bashlet \"t1 = ((a = 5 + 3, b = 7 - 1, c = 15 / 3))\"echo \"t1= $t1, a = $a, b = $b\" 

| 管道 (pipeline)

pipeline 是 unix 

系統,基礎且重要的觀念。鏈結上個指令的標準輸出,做為下個指令的標準輸入。 

who | wc -l 

! 驚嘆號(negate or reverse)

通常它代表反邏輯的作用,譬如條件偵測中,用 != 來代表\"不等於\" 

if [ \"$?\" != 0 ]thenecho \"executes error\"exit 1fi 

在規則表示式中她擔任 \"反邏輯\" 的角色 

ls a[!0-9] 

上例,代表顯示除了a0, a1 .... a9 這幾個

檔案的其他檔案。 

: 冒號

在 bash 中,這是乙個內建指令:\"什麼事都不幹\",但返回狀態值 0。 

: echo $? # 回應為 0 

: > f.$$ 

上面這一行,相當於 cat /dev/null >f.$$。不僅寫法簡短了,而且執行效率也好上許多。 

有時,也會出現以下這類的用法 

: $ $ $ 

這行的作用是,檢查這些環境變數是否已

設定,沒有設定的將會以標準錯誤顯示錯誤訊息。像這種檢查如果使用類似 test 或 if這類的做法,基本上也可以處理,但都比不上上例的簡潔與效率。 

? 問號 (wild card)

在檔名擴充套件(filename expansion)上扮演的角色是匹配乙個任意的字元,但不包含 null 字元。 

# ls a?a1 

善用她的特點,可以做比較精確的檔名匹配。 

* 星號 (wild card)

相當常用的符號。在檔名擴充套件(filename expansion)上,她用來代表任何字元,包含 null 字元。 

$ 錢號(dollar sign)

變數替換

(variable substitution)的代表符號。 

vrs=123echo \"vrs = $vrs\" # vrs = 123 

|| 邏輯符號

這個會時常看到,代表 or 邏輯的符號。 

&& 邏輯符號

這個也會常看到,代表 and 邏輯的符號。 

& 後台工作

單乙個& 符號,且放在完整指令列的最後端,即表示將該指令列放入後台中工作。 

tar cvfz data.tar.gz data > /dev/null& 

shell指令碼之符號與命令

1.理解 和 反引號在shell指令碼中有獨特的作用,凡是被反引號包括的內容shell會先執行該命令,再將該命令的輸出結果代換到當前命令列中。所以反引號的作用是命令替換。則是算數代換,在shell指令碼中,被雙括號括起來的算數命令可以被替換成算術結果。中只能用 運算子進行算數運算,而且只能做整數運算...

shell指令碼符號小結

大多數的shell指令碼都是以 bin sh開頭的,是對該shell指令碼的宣告,說明這個shell指令碼的型別及執行路徑。1.在shell指令碼中表示的注釋,但是 卻不是。2.表示的當前賬戶的home目錄。3.表示連續命令,我們在c語言程式設計時就經常用到。4.單引號表示單一字元。5.雙引號表示單...

shell指令碼符號篇

hell執行指令碼 bin bash echo 這是乙個shell指令碼 shell指令碼中用 表示注釋,如果 位於第一 開頭 並且是則例外,它表 該指令碼使 後 指定的直譯器 bin sh解釋執 第一種執行方式 chmod x script.sh shell會 fork 乙個子程序並調 用 exe...