shell 指令碼學習筆記

2021-10-04 22:03:33 字數 1461 閱讀 4535

變數型別

特殊變數

#!是一種約定標記,他可以告訴系統這個指令碼需要什麼樣的直譯器來執行。

變數名和等號之間不能有空格;

首個字元必須為字母(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...