參數是數組時,如何擴展參數?Bash中數組參數的間接參數擴展
如果參數是一個簡單的變量,我們可以使用感嘆號做一個間接尋址。
single_fruit()
{
if [ "$#" != 1 ]; then exit 1; fi
echo ${!1}
}
MYVAR=Persimmon
single_fruit MYVAR
我想對數組參數做同樣的事情。而不是遍歷直接數組的元素:
FRUIT=(Papaya Pineapple)
for f in ${FRUIT[@]}
do
echo ${f}
done
我想在函數中遍歷:
multi_fruit()
{
if [ "$#" != 1 ]; then exit 1; fi
PARAMETER=${1}
for i in ${!PARAMETER[@]}
do
echo ${i}
done
}
MOREFRUITS=(Mango Melon)
multi_fruit MOREFRUITS
你能做出對數組元素的這個最後的功能迭代?
三個有用的和獨特的解決方案如下。我接受了需要最簡單的函數調用,並且推薦其他兩個的函數。 – Calaf