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的元素:
而且不存在数组下标溢出的情况,如果 n>= 数组的长度,那么为空,不会报错。
2 获取数组长度
或者
那么如何用for遍历呢?一共有两种方式:
直接遍历每一个值
1 for i in ${variable[@]}; do
2遍历每一个值的下标
for i in $(seq 0 ${#variable[@]}); do
以上两种方法 把 @ 换成 * 也行。
字符串列表定义方法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 以上两种方法 把 @ 换成 * 也行。