1.shell变量
注意不能有空格
由字母、下划线和数字组成shell变量,不能由数字开头
有效:_var, ersa, my_var
无效:12a, a+a
2.Shell字符串
单引号、双引号
单引号一般用于一条字符串原样输出,变量无效
双引号使用较为灵活,可以使用转义字符,可以有变量
拼接字符串
your_name=“roobot”
greeting_1=‘hello, ‘$your_name’ !’
echo $greeting_1 # 输出hello, roobot !这里其实是拼接字符串,单双引号效果一样
greeting_2=‘hello, ${your_name} !’
echo $greeting_2 #输出:hello, {your_name} !说明单引号不能识别变量,故原样输出
获取字符串长度
string=“abcdefg”
echo ${#string}
提取子字符串
string=“your name is hugh”
echo ${string:1:4} #输出our
#查找子字符串
注意使用反引号``
查找字符i或o的位置,哪个字母先出现就计算哪个,从1开始,不是从0开始。
string=“my name is Evan”
echo expr index "$string" io
#输出9,注意是从1开始。
3.Shell数组
bash支持一维数组,不支持多维,并且没有限定数组的大小
数组下标从0开始
定义数组: 用括号表示数组,“ ”空格符号分割数组元素
array_name=(value0 value1 value2 value3)
或者
array_name=(
value0
value1
value2
value3
)
可以单独定义数组的各个分量:
array_name[0]=value0
可以不使用连续的下标,而且下标得范围没有限制
读取数组
{array_name[0]}
使用@符号可以获取数组中的所有元素,例如:
echo ${array_name[@]}
获取数组的长度
#取得数组元素的个数
length=${#array_name[@]} #或者length=${#array_name[*]}
echo $length #获取数组的长度,这里是指数组元素的个数: 4
echo $array_name #默认输出第一个数组元素:value0
length_1=${#array_name[1]}
echo $length_1 #获取数组单个元素的长度
4.Shell注释
#: 每行注释使用#
多行注释:
:<<EOF
xx
xxx
xxxx
EOF
EOF也可以使用其他符号
:<<’
…此处省略1w+行
’
:<<!
…此处省略1w+行
!