#!/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つを選択できるようにしたいと思います。ユーザー入力後、スクリプトは選択した配列の各要素を印刷します。select
array() 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 ?