shell之列表的定义与循环

字符串列表定义方法1:

a=(f1 f2 f3 f4)
for i in ${a[*]}#遍历每一个列表值

for i in ${a[@]}#等价与上一句

 

实例:

#!bin/bash
a=(f1 f2 f3 f4)
for i in ${a[*]}; do
echo ”$i“
if [ "$i" == "f1" ]; then#判断字符串是否相等,注意前后要有空格,否则变为赋值语句
echo ”f1 finded“
else
echo "NOTFOUND"
fi
done

字符串列表定义方法2:

a[1]=f1
a[2]= f2
a[3]= f3
a[4]= f4

实例2:

#!bin/bash
a[1]=f1
a[2]=f2
a[3]=f3
a[4]=f4
for i in ${a[*]}; do
echo ”$i“
if [ "$i" == "f1" ]; then
echo ”f1 finded“
else
echo "NOTFOUND"
fi
done

每个列表元素的

echo "${a[2]}"
#!bin/bash
a[1]=f1
a[2]=f2
a[3]=f3
a[4]=f4
echo "${a[1]}"
echo "${a[2]}"

 

1 获取下标为n的元素:

1
variable[n]

而且不存在数组下标溢出的情况,如果 n>= 数组的长度,那么为空,不会报错。

2 获取数组长度

1
${#variable[@]}

或者

1
${#variable[*]}

那么如何用for遍历呢?一共有两种方式:

直接遍历每一个值

1 for i in ${variable[@]}; do

1
2
# do something....
done

2遍历每一个值的下标

for i in $(seq 0 ${#variable[@]}); do

1
2
3
e=${variable[$i]}
 # do something....
done

以上两种方法 把 @ 换成 * 也行。

posted @ 2019-01-07 17:32  定静沉行  阅读(53374)  评论(0编辑  收藏  举报