課時1 Shell變數

2021-10-22 18:30:59 字數 2344 閱讀 6606

變數定義

myname=

"tom"

注:等號前後不能加空格,其命名規則與其他語言相同。

變數使用

使用定義過的變數僅需要在變數前加乙個「$「即可。

echo

$

使用readonly命令可以定義唯讀變數,且唯讀變數的值不能修改,如:

myname=

"tom"

readonly myname

使用unset命令可以刪除變數,如:

myname=

"tom"

unset myname

echo

$

以上**不會產生任何輸出。需要注意的是,unset不能刪除唯讀變數。

shell的字串可以用單引號或雙引號引用,如:

str1=

'this is a string'

str2=

"look! $! \n"

單引號與雙引號的區別

單引號中的任何字元都會原樣輸出,單引號中的字元變數是無效的。

單引號中不能出現單獨的乙個引號**義字元也不可),但可成對出現,作為字串拼接使用。

雙引號中可以有變數,也可以出現轉義字元

單引號拼接

myname=

"tom"

str=

'hello! '

$myname

'!'

雙引號拼接

myname=

"tom"

str1=

"hello, $!"

str2=

"hell0, '$myname'!"

獲取字串的長度

str=

"this is a string"

echo

$

提取子字串

擷取下列字串1-4位置的子字串(索引從0開始):

str=

"this is a string"

echo

$

查詢子字串

從下列字串中查詢字元『i』或者『s』的位置(首先出現哪個字元就輸出哪個字元的位置):

str=

"this is a string"

echo

`expr index '$str' is`

注意:**中使用的是反引號。

shell中採用括號表示陣列,陣列中的元素用空格分隔,定義形式為:

array_name=(value0 value1 … value_n)

或者array_name=(

value0

value1

…value_n

)也可以單獨地定義各個分量:

array_name[0]=value0

array_name[1]=value1

array_name[n]=value_n

:可以不使用連續的下標,而且下標的範圍沒有限制。

讀取陣列元素值的一般形式為:

$使用@符號可以獲取陣列中的所有元素:

$獲取陣列長度的方法與獲取字串長度的方法相同:

$注釋以#開頭,如:

# this is a note
多行注釋採用以下格式:

:<<

eofnote1

note2

note3

eof

或者

:<<<

!note1

note2

note3

!

有些變數在一開始執行shell指令碼時就會被設定,且不能修改,我們稱之為特殊變數。這些變數在一開始執行程式時就有了,以下是一些特殊變數:

$* 這個指令碼的所有引數

$# 這個指令碼的引數個數

$$ 這個指令碼的pid

$! 執行上乙個後台程式的pid

$? 執行上乙個指令的返回值

shell學習筆記 (1)shell變數

定義變數時,變數名不加美元符號,如 your name runoob.com 注意,變數名和等號之間不能有空格,變數名的命名須遵循如下規則 使用乙個定義過的變數,只要在變數名前面加美元符號即可,如 your name qinjx echo your name echo 使用 readonly 命令可...

shell指令碼學習1 shell介紹及變數

shell是什麼 根絕維基百科的定義。shell,一種殼層與命令列介面,是unix作業系統下傳統的使用者和計算機的互動介面,使用者直接輸入命令來執行各種各樣的任務。shell指令碼 英語 shell script 又稱shell命令稿 程式化指令碼,是一種電腦程式使用的文字檔案,內容由一連串的she...

shell程式設計 1 shell 基本指令

shell 指令 head test 1.txt 檢視最前面 10 行 head n 15 test 1.txt 檢視 前15 行 tail test 1.txt 檢視 最後 10行記錄 tail n 15 test 1.txt 檢視最後15行記錄 tail f test 1.txt 檢視實時記錄 ...