Ich arbeite mit Select und Case in Bash. Ich habe derzeit neun Optionen, was ein schönes, ordentliches 3x3-Raster von Optionen ergibt, aber es wird folgendermaßen angezeigt:
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
Ich würde es vorziehen, wenn es in Zeilen vor Spalten angezeigt wird:
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
Gibt es eine Möglichkeit, dies zu erreichen? Am besten etwas, das in einem Skript einfach ein- und auszuschalten ist, wie eine Shell-Option. Wenn es darauf ankommt, werden die Optionen in einem Array gespeichert und in den Fallblöcken durch den Index des Arrays referenziert.
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