网站主机技术 在线

780Shell 数组

根据数组元素索引获取该数组元素值时,数组下标可为变量。

例如:

arr=(a b c d)
i=2
echo ${arr[i]}

输出为:

c

779Shell 数组

数组的值也可以写入变量。

例如:

A=1
my_array=($A B C D)
echo "第一个元素为: ${my_array[0]}"
echo "第二个元素为: ${my_array[1]}"
echo "第三个元素为: ${my_array[2]}"
echo "第四个元素为: ${my_array[3]}"

输出为:

第一个元素为: 1第二个元素为: B第三个元素为: c第四个元素为: D

778Shell 传递参数

Shell 里面的中括号(包括单中括号与双中括号)可用于一些条件的测试:

  • 算术比较, 比如一个变量是否为0, [ $var -eq 0 ]
  • 文件属性测试,比如一个文件是否存在,[ -e $var ], 是否是目录,[ -d $var ]
  • 字符串比较, 比如两个字符串是否相同, [[ $var1 = $var2 ]]

[] 常常可以使用 test 命令来代替,具体可参看:Shell 中的中括号用法总结

777Shell 传递参数

在为shell脚本传递的参数中如果包含空格,应该使用单引号或者双引号将该参数括起来,以便于脚本将这个参数作为整体来接收

在有参数时,可以使用对参数进行校验的方式处理以减少错误发生:

if [ -n "$1" ]; then
    echo "包含第一个参数"
else
    echo "没有包含第一参数"
fi

注意:中括号 [] 与其中间的代码应该有空格隔开

776Shell 变量

read 命令用于获取键盘输入信息

它的语法形式一般是:
read [-options] [variable...]

以下实例读取键盘输入的内容并将其赋值给shell变量,为:-p 参数由于设置提示信息:

read -p "input a val:" a    #获取键盘输入的 a 变量数字
read -p "input b val:" b    #获取键盘输入的 b 变量数字
r=$[a+b]                    #计算a+b的结果 赋值给r  不能有空格
echo "result = ${r}"        #输出显示结果 r

测试结果:

input a val:1
input b val:2
result = 3