Je travaille avec select et case en bash. J'ai actuellement neuf options, ce qui fait une belle grille d'options 3x3, mais elle s'affiche comme suit:
1) show all elements 4) write to file 7) clear elements
2) add elements 5) generate lines 8) choose file
3) load file 6) clear file 9) exit
Je préfère qu'il s'affiche dans les lignes avant les colonnes:
1) show all elements 2) add elements 3) load file
4) write to file 5) generate lines 6) clear file
7) clear elements 8) choose file 9) exit
Existe-t-il un moyen d'y parvenir? De préférence, quelque chose de facile à définir et à désactiver dans un script, comme une option shell. Si cela est important, les options sont stockées dans un tableau et référencées dans les blocs de cas par l'index du tableau.
OPTIONS=("show all elements" "add elements" "load file" "write to file" "generate lines" "clear file" "clear elements" "choose file" "exit")
...
select opt in "${OPTIONS[@]}"
do
case $opt in
"${OPTIONS[0]}")
...
"${OPTIONS[8]}")
echo "Bye bye!"
exit 0
break
;;
*)
echo "Please enter a valid option."
esac
done