Jer*_*ska 3 bash select bash-array
#!/usr/bin/bash\n\n\nARGENT=("Nous devons \xc3\xa9conomiser de l'argent."\n"Je dois \xc3\xa9conomiser de l'argent.")\n\nBIENETRE=("Comment vas-tu?" "Tout va bien ?")\n\naoarrs=("${ARGENT}" "${BIENETRE}")\n\nselect arr in "${aoarrs[@]}"; do\n for el in "${arr[@]}"; do\n echo "$el"\n done\n break\ndone \n\n
Run Code Online (Sandbox Code Playgroud)\n我希望此脚本将数组名称打印给用户,ARGENT
并且BIENETRE
\n以便用户可以选择其中之一。用户输入后,脚本将打印所选数组的每个元素。我想从数组的数组 ( ) 中选择select
一个数组来循环aoarrs
。我想使用 select 的原因是因为在现实世界中,我的数组数组中可能不止两个数组。我怎样才能做到这一点?
您将把数组名称存储在 中aoarrs
,并在选择主体内声明所选名称的nameref:
ARGENT=("Nous devons \xc3\xa9conomiser de l\'argent."\n"Je dois \xc3\xa9conomiser de l\'argent.")\nBIENETRE=("Comment vas-tu?" "Tout va bien ?")\naoarrs=(ARGENT BIENETRE)\n\nPS3=\'Which array? \'\nselect arr in "${aoarrs[@]}"; do \n [[ $arr ]] || continue\n declare -n ref=$arr\n for i in "${!ref[@]}"; do \n printf \'%d\\t%s\\n\' $i "${ref[i]}"\n done \n break\ndone\n
Run Code Online (Sandbox Code Playgroud)\n跑步可能看起来像
\n1) ARGENT\n2) BIENETRE\nWhich array? 3\nWhich array? 4\nWhich array? 5\nWhich array? 2\n0 Comment vas-tu?\n1 Tout va bien ?\n
Run Code Online (Sandbox Code Playgroud)\n