相关的代码解释在注释中。
代码如下:
#!/bin/bash # # shell定义变量是 变量名="xxx" 这样定义 # 注意,变量名和等号之间不能有空格,这可能和你熟悉的所有编程语言都不一样。 # 1.首个字符必须为字母(a-z,A-Z)。 # 中间不能有空格,可以使用下划线(_)。 # 不能使用标点符号。 # 不能使用bash里的关键字(可用help命令查看保留关键字)。 # 使用变量 test="ceshi" # 使用变量,加上美元符号$ echo $test # 或者 如下 echo ${test} # 除了显式地直接赋值,还可以用语句给变量赋值,如: echo `ls /etc` # 字符串 # 字符串可以用单引号,也可以用双引号,也可以不用引号。单双引号的区别跟PHP类似。 # 字符串拼接:直接用空格或者不加空格直接贴后面也行 teststr="zengzhihai" addteststr1="hello $teststr" addteststr2="hello$teststr" echo $addteststr1 echo $addteststr2 # 获取字符串长度 echo ${#teststr} # 截取字符串 ${str:n:m} 提取字符串从n开始,截取m个 echo ${teststr:1:5} # 查找字符串 expr index str search 是否能够查找到search字符串 echo `expr index $teststr zhi` echo `expr index $teststr mm` # 设置了teststr 下面不能再重新定义,也不能删除 readonly teststr # 删除teststr (这里对readonly的设置的不能删除) unset teststr echo $teststr # 定义数组:用括号来表示数组,数组元素用"空格"符号分割开。定义数组的一般形式为:数组名=(值1 值2 ... 值n) # bash支持一维数组(不支持多维数组),并且没有限定数组的大小 # 定义数组 testarr=("value1" "value22" "value333") # 直接echo 默认输出第一个数组的值 echo $testarr #遍历数组 for v in ${testarr[@]}; do echo $v; done # 读取数组元素之的格式:${数组名[下标]} # 打印所有元素 echo ${array_name[@]} echo ${testarr[@]} # 获取数组元素的个数,下面是两种方式 length=${#testarr[@]} echo $length length1=${#testarr[*]} echo $length1 # 获取单个元素个数的长度 ${#arr[n]} lengthnn=${#testarr[2]} echo $lengthnn # 数组的模式替换 ${数组名[@或*]/模式/新值} tmparr=${testarr[@]/value/my} echo $tmparr