一、基础知识
1.命名规则
- 命名只能使用英文字母,数字和下划线,首个字符不能以数字开头。
- 中间不能有空格,可以使用下划线 _。
- 不能使用标点符号。
- 不能使用bash里的关键字(可用help命令查看保留关键字)。
2.使用变量
只需要在变量名前加美元符号 $
your_name = dashuaige
echo $dashuaige
echo ${dashuaige}
变量名外面的花括号是可选的,加不加都行,加花括号是为了帮助解释器识别变量的边界(最好加上,养成好习惯)。
3.只读变量
使用 readonly 命令可以将变量定义为只读变量,只读变量的值不能被改变。
4.删除变量
使用 unset 命令可以删除变量。语法:
unset variable_name
变量被删除后不能再次使用。unset 命令不能删除只读变量。
5.获取字符串长度
str = "abcdefg"
echo ${#str} #输出为7
变量为字符串时,${#string} 等价于 ${#string[0]}
5.1 提取子字符串长度
string = "Nice to meet you!"
echo ${string[1:4]} #提取2到4的字符
5.2 查找子字符串
查找io,哪个字母先出现就先计算哪个
string = "Nice to meet you!"
echo `expr index "$string" io` #输出为1
6.Shell数组
bash支持一维数组(不支持多维数组),并且没有限定数组的大小。
类似于 C 语言,数组元素的下标由 0 开始编号。获取数组中的元素要利用下标,下标可以是整数或算术表达式,其值应大于或等于 0。
6.1 定义数组
在 Shell 中,用括号来表示数组,数组元素用"空格"符号分割开。
格式为:数组一 = (元素1 元素2 ... ...)or array_name[0]=value0
array_name[0]=value1
... ...
6.2 读取数组
${数组名[下标]}
使用 @ 符号可以获取数组中的所有元素
echo ${array_name[@]}
6.3 获取数组的长度
获取数组长度与获取字符串长度的方法相同。