一、Shell 字符串
字符串可以用单引号、双引号、也可以不用引号。
1.单引号
str='this is a dog'2.双引号
your_name="zu"str="Hello, I know you are \"$your_name\"! \n"echo -e $str
输出结果:
Hello, I know you are "zu"! 3.拼接字符串
your_name="zu"greeting="hello, "$your_name" !" # 使用双引号拼接greeting_1="hello, ${your_name} !"echo $greeting $greeting_1
greeting_2='hello, '$your_name' !' # 使用单引号拼接greeting_3='hello, ${your_name} !'echo $greeting_2 $greeting_3
输出结果:
hello, runoob ! hello, runoob !hello, runoob ! hello, ${your_name} !
4.获取字符串长度
string="abc"echo ${#string} # 输出 3
变量为字符串时,${#string} 等价于 ${#string[0]}
string="abc"echo ${#string[0]} # 输出 3
5.提取子字符串
string="zuzuzuzu is a great site" #从字符串第 2 个字符开始截取 4 个字符echo ${string:1:4} # 输出 uzuz第一个字符的索引值为 0。
6.查找子字符串
查找字符 u 的位置:
string="zu is a great site"echo `expr index "$string" io` # 输出 2
二、Shell 数组(bash支持一维数组,并且没有限定数组的大小)
1.定义数组
在 Shell 中,用括号来表示数组,数组元素用"空格"符号分割开。一般形式为:
数组名=(值1 值2 ... 值n)array_name=(value0 value1 value2 value3)或
array_name=(value0value1value2value3)
或单独定义数组的各个分量:
array_name[0]=value0array_name[1]=value1array_name[n]=valuen
2.读取数组
一般格式是:
${数组名[下标]}例如:
valuen=${array_name[n]}使用 @ 符号可以获取数组中的所有元素,例如:
echo ${array_name[@]}3.获取数组的长度
获取数组长度的方法与获取字符串长度的方法相同
length=${# array_name[@]}# 取得数组元素的个数length=${#array_name[*]}length=${#array_name[n]}# 取得数组单个元素的长度
三、Shell 注释
1.以 # 开头的行就是注释
#--------------------------------------------# 这是一个注释# author:组# site:www.zu.com#--------------------------------------------##### 用户配置区 开始 ######## 这里可以添加脚本描述信息####### 用户配置区 结束 #####
2.多行注释
多行注释还可以使用以下格式:
:<<EOF注释内容...注释内容...注释内容...EOF#以上例子中,: 是一个空命令,用于执行后面的 Here 文档,#<<'EOF' 表示开启 Here 文档,COMMENT 是 Here 文档的标识符,#在这两个标识符之间的内容都会被视为注释,不会被执行。
EOF 也可以使用其他符号:
: <<'COMMENT'这是注释的部分。可以有多行内容。COMMENT:<<'注释内容...注释内容...注释内容...':<<!注释内容...注释内容...注释内容...!
直接使用 : 号.
格式为:: + 空格 + 单引号。
: '这是注释的部分。可以有多行内容。'