我有一個 bash 陣列,如下所示:
fruits=(
F001 "Sour fruit" 5
F002 "Sweet fruit" 15
F003 "Good fruit" 10
)
我想訪問這個陣列并按如下方式列印它:
Fruit code: F001, Desc: Sour fruit, Price: 5
Fruit code: F002, Desc: Sweet fruit, Price: 15
Fruit code: F003, Desc: Good fruit, Price: 10
我嘗試了以下代碼,但它給了我一個錯誤的輸出
for f in "${fruits[@]}"; do
IFS=" " read -r -a arr <<<"${f}"
code="${arr[0]}"
desc="${arr[1]}"
price="${arr[2]}"
echo "Fruit code: : ${code}, Desc: ${desc}, Price: ${price}"
echo
done
任何人都知道如何做到這一點:)
uj5u.com熱心網友回復:
您定義的 bash 陣列沒有 3 個元素,而是 9 個。因此您可以使用模 3 運算快速完成此操作:
for ((i=0;i<"${#fruits[@]}";i=i 3)); do
code="${fruits[i]}"
desc="${fruits[i 1]}"
price="${fruits[i 2]}"
echo "Fruit code: : ${code}, Desc: ${desc}, Price: ${price}"
done
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/465456.html
