shell之列表的定義與循環

字符串列表定義方法1:html

a=(f1 f2 f3 f4)
for i in ${a[*]}#遍歷每個列表值數組

for i in ${a[@]}#等價與上一句bash

 

實例:spa

#!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.net

字符串列表定義方法2:code

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

實例2:ci

#!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字符串

每一個列表元素的get

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

以上兩種方法 把 @ 換成 * 也行。

相關文章
相關標籤/搜索