學習筆記 shell中位置引數及特殊引數

2022-03-23 09:47:02 字數 1183 閱讀 3623

$0, $1, $2,等等...

位置引數,從命令列傳遞給指令碼,或者是傳遞給函式.或者賦職給乙個變數.

$0表示當前執行的程序名,script 本身的名字,或者在正規表示式中表示整行輸出

$#命令列或者是位置引數的個數.

$*所有的位置引數,被作為乙個單詞.

注意:"$*"必須被""引用.

$@與$*同義,但是每個引數都是乙個獨立的""引用字串,這就意味著引數被完整地傳遞,

並沒有被解釋和擴充套件.這也意味著,每個引數列表中的每個引數都被當成乙個獨立的單詞.

注意:"$@"必須被""引用.

其他的特殊引數

$-傳遞給指令碼的falg(使用set 命令).

注意:這起初是ksh 的特徵,後來被引進到bash 中,但不幸的是,在bash 中它看上去也不

能可靠的工作.使用它的乙個可能的方法就是讓這個指令碼進行自我測試(檢視是否是交

互的).

$!在後台執行的最後的工作的pid(程序id).

$_儲存之前執行的命令的最後乙個引數.

$?命令,函式或者指令碼本身的退出狀態

用於檢查上乙個命令,函式或者指令碼執行是否正確。(在linux中,命令退出狀態為0表示該命令正確執行,任何非0值表示命令出錯。)

$$指令碼自身的程序id.這個變數經常用來構造乙個"unique"的臨時檔名.

這通常比呼叫mktemp 來得簡單.

注意事項:

[1] 當前執行的指令碼的pid 為$$.

[2] "argument"和"parameter"這兩個單詞經常不加區分的使用.在這整本書中,這兩個

單詞的意思完全相同.(在翻譯的時候就未加區分,統統翻譯成引數)

退出和返回

退出狀態(exit status)

函式返回乙個被稱為退出狀態的值. 退出狀態可以由return 來指定statement, 否則函式的

退出狀態是函式最後乙個執行命令的退出狀態(0 表示成功,非0 表示出錯**). 退出狀態

(exit status)可以在指令碼中由$? 引用. 這個機制使指令碼函式也可以像c 函式一樣有乙個"

返回值".

return

終止乙個函式.return 命令[1]可選地帶乙個整數引數,這個整數作為函式的"返回值"返回

給呼叫此函式的指令碼,並且這個值也被賦給變數$?.

while true可以寫為while :

Shell基礎 位置引數

位置引數是用一位或多位數字 除了0 表示的引數,位置引數n可以引用為 或者當n由單個數字組成時,引用為 n 位置引數是在呼叫shell時從shell引數中分配的 bash s a b c echo 1 2 3a b c cat script echo 1 2 3 bash script a b c ...

shell 位置引數變數

n 0代表命令本身 1 9 代表第乙個到第九個引數 第十個引數 eg bin bash num1 1 num2 2 sum 1 2 echo sum 命令執行中的所有引數 乙個整體 執行中所有引數 單個引數 執行中的引數個數 bin bash for i in do 所有引數當成乙個整體迴圈一次 1...

關於Shell中的位置引數變數

位置引數是一種在呼叫shell程式的命令列中按照各自的位置決定的變數,是在程式名之後輸入的引數,它們分別標識了使用者輸入的整個命令列中以空格分隔開的字串,其中,1標識第乙個位置的引數,2標識第二個,以此類推。其中,0是乙個特殊的變數,它的內容是當前這個shell程式的檔名,所以,它不是乙個位置引數,...