#!/bin/bash # test how to ask user in menu/option list form # KLL rev 10.4.2018 # optional terminal colors WHT='\E[37;44m' # white on blue background BLU='\E[47;34m' # blue on white background MAG='\E[47;35m' # magenta on white background GRN='\E[47;32m' # green on NO background RED='\E[47;31m' # red on white background BLK='\E[47;30m' # black on white background BOLD='\033[1m' # and BOLD END2='\033[0m' # end bold # local text variables CMDDEFAULT='sudo raspi-config' # at any wrong key or timeout execute this command MENUHEAD='_____ BASH user menu ______' MENUOPT1=' -1- option 1______________' MENUOPT2=' -2- option 2______________' MENUOPT3=' -3- option 3______________' MENUOPT4=' -d- default start :_______' MYINFOPT=' use 1 2 3 or d ___________\n quit [qQ] or [ctrl][c] ___\n with d or any key ________\n or timeout 30s do default ' MYANSWER='' echo -e $RED$MENUHEAD$END2 echo -e $BLU$MENUOPT1$END2 echo -e $BLU$MENUOPT2$END2 echo -e $BLU$MENUOPT3$END2 echo -n -e $BLK$MENUOPT4$END2 echo -e $WHT$CMDDEFAULT$END2 #echo -n $MYINFO # -n if no new line required echo -e $MAG$MYINFOPT$END2 # timeout, one character input only / no ENTER required read -t 30 -n 1 -p '? ' MYANSWER case $MYANSWER in [1]*) echo ' You said: 1' ;; [2]*) echo ' You said: 2' ;; [3]*) echo ' You said: 3' ;; [Yy]*) echo ' You said: yes' # what to do next? echo 'yes next' ;; [Nn]*) echo ' You said: no' # what to do next? echo 'no next' ;; [Qq]*) echo ' You said: quit';; *) echo ' !wrong answer or timeout, i do default: '$CMDDEFAULT # what to do default ( any key or timeout ) $CMDDEFAULT ;; esac #