Shell變量
注意报账,變量名和等號之間不能有空格炊苫,這可能和你熟悉的所有編程語言都不一樣铭若。同時,變量名的命名須遵循如下規(guī)則:
- 首個字符必須為字母(a-z架诞,A-Z)。
- 中間不能有空格干茉,可以使用下劃線(_)谴忧。
- 不能使用標(biāo)點(diǎn)符號。
- 不能使用bash里的關(guān)鍵字(可用help命令查看保留關(guān)鍵字)。
使用變量
只需要在變量前面加$即可, 但是最正規(guī)的寫法是 ${變量名字}, 下面這兩種方式都可以
your_name="test name"
echo ${your_name}
echo $your_name
只讀變量
your_name="test name"
readonly your_name
your_name="hah" #這一行在執(zhí)行的時候會報錯
由此可以看出, 如果我們沒有設(shè)置readonly, 重復(fù)設(shè)置同一個名字的變量會覆蓋掉之前的值
刪除變量
your_name="lwj"
echo ${your_name} #打印 lwj
unset your_name
echo ${your_name} #打印的內(nèi)容為空
變量的類型
一共分為, 局部變量, 環(huán)境變量和shell變量三種情況
Shell字符串
字符串是shell編程中最常用最有用的數(shù)據(jù)類型(除了數(shù)字和字符串沾谓,也沒啥其它類型好用了)委造,字符串可以用單引號,也可以用雙引號均驶,也可以不用引號昏兆。
單引號和雙引號的用法幾乎一致, 只是單引號有一些限制, 我們大部分的時候都是使用雙引號, 單引號應(yīng)該在特定的場合使用.
單引號的限制:
- 單引號里的任何字符都會原樣輸出,單引號字符串中的變量是無效的妇穴;
- 單引號字串中不能出現(xiàn)單引號(對單引號使用轉(zhuǎn)義符后也不行)爬虱。
雙引號的優(yōu)點(diǎn):
- 雙引號里可以有變量
- 雙引號里可以出現(xiàn)轉(zhuǎn)義字符
拼接字符串
下面兩種方式都可以拼接, 要注意的是: 方式一的 "$"符號前面不能有空格
your_name="lwj"
greeting="hello, "$your_name" !" #方式一
greeting_1="hello, ${your_name} !" #方式二
echo $greeting $greeting_1
獲取字符的長度
your_name="test"
echo ${#your_name} #打印4
截取字符串
your_name="test lwj"
echo ${your_name:1:3} #打印 est
Shell數(shù)組
數(shù)組中可以存放多個值。Bash Shell 只支持一維數(shù)組(不支持多維數(shù)組)腾它,初始化時不需要定義數(shù)組大信荏荨(與 PHP 類似)。
與大部分編程語言類似瞒滴,數(shù)組元素的下標(biāo)由0開始, 我自己認(rèn)為的是,沒有長度限制, 沒有越界的概念, 沒有值就為空
Shell 數(shù)組用括號來表示曲梗,元素用"空格"符號分割開,語法格式如下:
array=(值1 值2 值3...) #可以一起初始化
array[3]=值1 #單獨(dú)初始化
echo ${array[@]} #打印整個數(shù)組的值
echo ${#array[@]} #打印數(shù)組的長度
echo ${#array[+]} #打印數(shù)組的長度
echo ${array[1]} 打印數(shù)組的第1個值
Shell注釋
shell只有單行注釋, 就是在行首添加#
本文參考 菜鳥教程