變數定義:
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 檢視實時記錄 ...