shell之列表的定義與迴圈
阿新 • • 發佈:2019-01-07
字串列表定義方法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
|
以上兩種方法 把 @ 換成 * 也行。