Shell變量
注意,變量名和等號之間不能有空格,這可能和你熟悉的所有編程語言都不一樣。同時,變量名的命名須遵循如下規則:
- 首個字符必須為字母(a-z,A-Z)。
- 中間不能有空格,可以使用下劃線(_)。
- 不能使用標點符號。
- 不能使用bash里的關鍵字(可用help命令查看保留關鍵字)。
使用變量
只需要在變量前面加$即可, 但是最正規的寫法是 ${變量名字}, 下面這兩種方式都可以
your_name="test name"
echo ${your_name}
echo $your_name
只讀變量
your_name="test name"
readonly your_name
your_name="hah" #這一行在執行的時候會報錯
由此可以看出, 如果我們沒有設置readonly, 重復設置同一個名字的變量會覆蓋掉之前的值
刪除變量
your_name="lwj"
echo ${your_name} #打印 lwj
unset your_name
echo ${your_name} #打印的內容為空
變量的類型
一共分為, 局部變量, 環境變量和shell變量三種情況
Shell字符串
字符串是shell編程中最常用最有用的數據類型(除了數字和字符串,也沒啥其它類型好用了),字符串可以用單引號,也可以用雙引號,也可以不用引號。
單引號和雙引號的用法幾乎一致, 只是單引號有一些限制, 我們大部分的時候都是使用雙引號, 單引號應該在特定的場合使用.
單引號的限制:
- 單引號里的任何字符都會原樣輸出,單引號字符串中的變量是無效的;
- 單引號字串中不能出現單引號(對單引號使用轉義符后也不行)。
雙引號的優點:
- 雙引號里可以有變量
- 雙引號里可以出現轉義字符
拼接字符串
下面兩種方式都可以拼接, 要注意的是: 方式一的 "$"符號前面不能有空格
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數組
數組中可以存放多個值。Bash Shell 只支持一維數組(不支持多維數組),初始化時不需要定義數組大小(與 PHP 類似)。
與大部分編程語言類似,數組元素的下標由0開始, 我自己認為的是,沒有長度限制, 沒有越界的概念, 沒有值就為空
Shell 數組用括號來表示,元素用"空格"符號分割開,語法格式如下:
array=(值1 值2 值3...) #可以一起初始化
array[3]=值1 #單獨初始化
echo ${array[@]} #打印整個數組的值
echo ${#array[@]} #打印數組的長度
echo ${#array[+]} #打印數組的長度
echo ${array[1]} 打印數組的第1個值
Shell注釋
shell只有單行注釋, 就是在行首添加#
本文參考 菜鳥教程