⬅︎ Back to Catching a carriage return in bash
#!/bin/bashm() {cat << EOP Select task: 1 - Task XYZ 2 - Task F19 3 - Task 123 q - quitEOP}k="1"until [[ $k == [qQ] ]]; do m echo "enter 1, 2, 3, q or just hit Enter" read -n 1 k case $k in 1) echo "doing task XYZ" ;; 2) echo "doing task F19" ;; 3) echo "doing task 123" ;; '') echo "Q was blank";; q) echo "quitting now" && exit 0 ;; *) echo "invalid key" ;; esacdone
Comment
#!/bin/bash
m() {
cat << EOP
Select task:
1 - Task XYZ
2 - Task F19
3 - Task 123
q - quit
EOP
}
k="1"
until [[ $k == [qQ] ]]; do
m
echo "enter 1, 2, 3, q or just hit Enter"
read -n 1 k
case $k in
1) echo "doing task XYZ" ;;
2) echo "doing task F19" ;;
3) echo "doing task 123" ;;
'') echo "Q was blank";;
q) echo "quitting now" && exit 0 ;;
*) echo "invalid key" ;;
esac
done