参考菜鸟教程:https://www.runoob.com/linux/linux-shell-variable.html
字符串
1、单引号
单引号里的任何字符都会原样输出,单引号字符串中的变量是无效的;比如,greeting_3='hello, ${your_name} !'输出的就是${your_name} ,所以不能在单引号中写。
可以作为字符串拼接使用,greeting_2='hello, '$your_name' !'
单引号字串中不能出现单独一个的单引号(对单引号使用转义符后也不行),但可成对出现,作为字符串拼接使用。
2、双引号
双引号里可以有变量,可以拼接,比如,greeting="hello, "$your_name" !” # hello, 与 ! 两个字符串拼接,中间插入的是变量。
双引号里可以出现转义字符
3、获取字符串长度
string="abcd"
echo ${#string} #输出 4
4、提取子字符串
以下实例从字符串第 2 个字符(小标是从0开始的)开始往后截取 4 个字符:
string="runoob is a great site" echo ${string:1:4} # 输出 unoo
5、查找子字符串
查找字符 i 或 o 的位置(哪个字母先出现就计算哪个):
string="runoob is a great site" echo `expr index "$string" io` # 输出 4 # 这里指第四个字符,r字符为第一个
注意: 以上脚本中 ` 是反引号,而不是单引号 ',不要看错了哦。
数组
bash支持一维数组(不支持多维数组),没有限定数组的大小。
1、定义数组
数组名=(值1 值2 ... 值n) # 使用括号来表示数组,数组元素用"空格"符号分割开。
2、读取数组
(1)、读取数组元素值:
${数组名[下标]} # 例如,valuen=${array_name[n]}
(2)、获取数组中的所有元素:
echo ${array_name[@]}
(3)、 取得数组元素的个数
length=${#array_name[@]} 或 length=${#array_name[*]}