我想要做這樣的事情:循環執行陣列,印刷兩個指數和值
foo=()
foo[0]="bar"
foo[35]="baz"
for((i=0;i<${#foo[@]};i++))
do
echo "$i: ${foo[$i]}"
done
# Output:
# 0: bar
# 1:
然後我試圖遍歷它使用在:
foo=()
foo[0]="bar"
foo[35]="baz"
for i in ${foo[@]}
do
echo "?: $i"
done
# Output:
# ?: bar
# ?: naz
但在這裏,我不噸知道指數值。
我知道你可以像
foo=()
foo[0]="bar"
foo[35]="baz"
declare -p foo
# Output:
# declare -a foo='([0]="bar" [35]="baz")'
,但是,你不能以另一種方式做到這一點?
重要事項,而迭代,用空格隔開單詞列表不是數組。把它像'(a b c)'一樣轉換成一個數組。 – Breedly
使用'[@]'和雙引號意味着它不是「空格分隔的單詞列表」。即使單個鍵包含空格,您也會獲得實際數組鍵的列表。 –
@glennjackman你能解釋一下嗎?[@]和雙引號的使用意味着它不是一個「空格分隔的單詞列表」 –