您的位置:首页 > 运维架构 > Shell

shell

2015-08-27 00:14 295 查看
if 语句通过关系运算符判断表达式的真假来决定执行哪个分支。Shell 有三种 if ... else 语句: if ... fi 语句;if ... else ... fi 语句;if ... elif ... else ... fi 语句。case 语句匹配一个值或一个模式,如果匹配成功,执行相匹配的命令。case语句格式如下:
case 值 in
模式1)
    command1
    command2
    command3
    ;;
模式2)
    command1
    command2
    command3
    ;;
*)
    command1
    command2
    command3
    ;;
esac
for循环一般格式为:
for 变量 in 列表  如:for I in ((I=0;i<n;i++)) 和for I in $(seq 0 n)
do
    command1
    command2
    ...
    commandN
done
while commanddo   Statement(s) to be executed if command is truedone
until commanddo   Statement(s) to be executed until command is truedone
function function_name () {    list of commands    [ return value ]}
定义数组在Shell中,用括号来表示数组,数组元素用“空格”符号分割开。定义数组的一般形式为:    array_name=(value1 ... valuen)例如:
复制纯文本新窗口
array_name=(value0 value1 value2 value3)
array_name=(value0 value1 value2 value3)
或者
复制纯文本新窗口
array_name=(value0value1value2value3)
array_name=(value0value1value2value3)
还可以单独定义数组的各个分量:
复制纯文本新窗口
array_name[0]=value0array_name[1]=value1array_name[2]=value2
array_name[0]=value0array_name[1]=value1array_name[2]=value2
可以不使用连续的下标,而且下标的范围没有限制。

读取数组

读取数组元素值的一般格式是: ${array_name[index]}例如:
复制纯文本新窗口
valuen=${array_name[2]}
valuen=${array_name[2]}
举个例子:
复制纯文本新窗口
#!/bin/sh NAME[0]="Zara"NAME[1]="Qadir"NAME[2]="Mahnaz"NAME[3]="Ayan"NAME[4]="Daisy"echo "First Index: ${NAME[0]}"echo "Second Index: ${NAME[1]}"
#!/bin/shNAME[0]="Zara"NAME[1]="Qadir"NAME[2]="Mahnaz"NAME[3]="Ayan"NAME[4]="Daisy"echo "First Index: ${NAME[0]}"echo "Second Index: ${NAME[1]}"
运行脚本,输出:
$./test.shFirst Index: ZaraSecond Index: Qadir
使用@ 或 * 可以获取数组中的所有元素,例如:
复制纯文本新窗口
${array_name[*]}${array_name[@]}
${array_name[*]}${array_name[@]}
举个例子:
复制纯文本新窗口
#!/bin/sh NAME[0]="Zara"NAME[1]="Qadir"NAME[2]="Mahnaz"NAME[3]="Ayan"NAME[4]="Daisy"echo "First Method: ${NAME[*]}"echo "Second Method: ${NAME[@]}"
#!/bin/shNAME[0]="Zara"NAME[1]="Qadir"NAME[2]="Mahnaz"NAME[3]="Ayan"NAME[4]="Daisy"echo "First Method: ${NAME[*]}"echo "Second Method: ${NAME[@]}"
运行脚本,输出:
$./test.shFirst Method: Zara Qadir Mahnaz Ayan DaisySecond Method: Zara Qadir Mahnaz Ayan Daisy

获取数组的长度

获取数组长度的方法与获取字符串长度的方法相同,例如:复制纯文本新窗口
# 取得数组元素的个数length=${#array_name[@]}# 或者length=${#array_name[*]}# 取得数组单个元素的长度lengthn=${#array_name}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: