【Shell基础篇】Shell 变量

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

可以不使用连续的下标,而且下标得范围没有限制

读取数组
[ ] v a l u e 1 = {数组名[下标]} value1= {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+行
!

猜你喜欢

转载自blog.csdn.net/Yuyh131/article/details/83662941