この現在の関数を使用して、メニュー スタイルで配列を作成しています (シナリオでは連想配列を使用できません)。
declare -a array1=("host1" "host2" "host3")
declare -a array2=("ip1" "ip2" "ip3")
function menusetup {
iter=0
for ((i=0; i<(count*2); i+=2)); do
menu[$i]=${array1[$iter]}
menu[$i+1]=${array2[$iter]}
((iter++))
done
}
menusetup
これにより、次のようなメニュー配列が得られます。{"host1" "ip1" "host2" "ip2" "host3" "ip3"
これは必要なものに対して完璧に機能していますが、この関数を再利用して、次のような 2 つの配列を渡したいと考えています。
function menusetup {
iter=0
for ((i=0; i<(count*2); i+=2)); do
menu[$i]=${$1[$iter]}
menu[$i+1]=${$2[$iter]}
((iter++))
done
}
menusetup "${array3[@]}" "${array4[@]}"
編集: 2 番目の例は、配列の要素のリスト全体を渡すことを知っています。配列を渡して代入する方法があれば知りたい