變數型別
特殊變數
#!是一種約定標記,他可以告訴系統這個指令碼需要什麼樣的直譯器來執行。
變數名和等號之間不能有空格;
首個字元必須為字母(a-z,a-z)。
中間不能有空格,可以使用下劃線(_)。
不能使用標點符號。
不能使用bash裡的關鍵字(可用help命令檢視保留關鍵字)。
country=
"china"
echo $country
echo $
echo "i love my $abcd!"
country=
"china"
country=
"ribenguizi"
readonly country=
"china"
或country=
"china"
readonly country
unset variable_name
區域性變數
區域性變數在指令碼或命令中定義,僅在當前shell例項中有效,其他shell啟動的程式不能訪問區域性變數。
環境變數
所有的程式,包括shell啟動的程式,都能訪問環境變數,有些程式需要環境變數來保證其正常執行。必要的時候shell指令碼也可以定義環境變數。
shell變數
shell變數是由shell程式設定的特殊變數。shell變數中有一部分是環境變數,有一部分是區域性變數,這些變數保證了shell的正常執行 變數
含義$0
:-- 當前指令碼的檔名–
$n傳遞給指令碼或函式的引數,n是乙個數字,表示第幾個引數,例如,第乙個$1,第二個$2
$#傳遞給指令碼或函式的引數個數
$*傳遞給指令碼或函式的所有引數
$@傳遞給指令碼或函式的所有引數,被雙引號包含時與$*稍有不同
$?上個命令的退出狀態,或函式返回值
$$當前shell程序id,對於shell指令碼就是這些指令碼所在的程序id
$* 和$@ 的區別為: 都表示傳遞給函式或指令碼的所有引數,
不被雙引號(" 「)包含時,都以」$1" 「2"…
"2" … "
2"…"
n」 的形式輸出所有引數。
被雙引號(" 「)包含時,」$*" 會將所有的引數作為乙個整體,以"$1 $2 … n"的
形式輸出
所有引數
;"
n"的形式輸出所有引數;"
n"的形式輸
出所有參
數;"@" 會將各個引數分開,以"$1" 「2"…
"2" … "
2"…"
n」 的形式輸出所有引數。
$? 獲取上乙個命令的退出狀態。就是上乙個命令執行後的返回結果。退出狀態是乙個數字,大部分命令成功會返回 0,失敗返回 1。
shell指令碼學習筆記
學習筆記 1,檔案名字命名為 sh,字尾sh表明這是乙個bash指令碼檔案 2,shell指令碼的第一行如下 bin sh bin sh告訴系統其後路徑所指定的程式即是解釋此指令碼檔案的shell程式 3,寫完指令碼後儲存檔案,然後將檔案變成可執行檔案 chmod x test.sh 4,以下是乙個...
Shell指令碼學習筆記
find 命令 1.基於檔名或者正規表示式搜尋 例子 匹配多個條件 find name txt o name pdf print 找到當前目錄中所有txt pdf檔案輸出 加 o 表示or條件 將中間部分視為乙個整體 find regex py sh regex 基於正規表示式匹配 2.基於目錄深度...
Shell指令碼 學習筆記
編寫輸出hello world的程式是入門的第一步 1.vim helloworld.sh 2.輸入 i 進入插入模式 開始寫指令碼 bin sh echo hello world 3.執行shell指令碼 chmod 0777 helloworld.sh 賦予執行許可權 helloworld.sh...