配列配列から繰り返す配列を選択するには?

配列配列から繰り返す配列を選択するには?
#!/usr/bin/bash


ARGENT=("Nous devons économiser de l'argent."
"Je dois économiser de l'argent.")

BIENETRE=("Comment vas-tu?" "Tout va bien ?")

aoarrs=("${ARGENT}" "${BIENETRE}")

select arr in "${aoarrs[@]}"; do
  for el in "${arr[@]}"; do
    echo "$el"
  done
  break
done 

私はこのスクリプトが配列名をユーザーに印刷して、ARGENTユーザーBIENETREがそれらの1つを選択できるようにしたいと思います。ユーザー入力後、スクリプトは選択した配列の各要素を印刷します。selectarray() of arrays で繰り返す配列を選択したいと思いますaoarrs。私がselectを使用したいのは、実際の世界では、配列配列に複数の配列がある可能性があるためです。どうすればいいですか?

ベストアンサー1

配列を保存します。名前aoarrs以下を宣言します。名前参照選択した名前で:

ARGENT=("Nous devons économiser de l'argent."
"Je dois économiser de l'argent.")
BIENETRE=("Comment vas-tu?" "Tout va bien ?")
aoarrs=(ARGENT BIENETRE)

PS3='Which array? '
select arr in "${aoarrs[@]}"; do 
    [[ $arr ]] || continue
    declare -n ref=$arr
    for i in "${!ref[@]}"; do 
        printf '%d\t%s\n' $i "${ref[i]}"
    done 
    break
done

走る姿は次のとおりです。

1) ARGENT
2) BIENETRE
Which array? 3
Which array? 4
Which array? 5
Which array? 2
0   Comment vas-tu?
1   Tout va bien ?

おすすめ記事