1

この現在の関数を使用して、メニュー スタイルで配列を作成しています (シナリオでは連想配列を使用できません)。

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 番目の例は、配列の要素のリスト全体を渡すことを知っています。配列を渡して代入する方法があれば知りたい

4

1 に答える 1