using bash select
The description of "select" in the bash man page is enough to
give anyone a headache.
It almost looks like something a lawyer would write:
select name [ in word ] ; do list ; done
The list of words following in is expanded, generating
a list of items. The set of expanded words is
printed on the standard error, each preceded
by a number. If the in word is omitted, the positional
parameters are printed (see PARAMETERS below).
The PS3 prompt is then displayed and a line read
from the stan- dard input. If the line consists of
a number corresponding to one of the displayed
words, then the value of name is set to that word.
If the line is empty, the words and prompt are dis-
played again. If EOF is read, the command completes.
Any other value read causes name to be set to null.
The line read is saved in the variable REPLY.
The list is executed after each selection until a
break command is executed. The exit status of select
is the exit status of the last command executed in
list, or zero if no commands were executed.
But it's actually not all that awful. Let's give it a spin:
select i in a b c quit
[ $i = "quit" ] && exit 0
echo "You chose $i"
By gosh, it's a menu, isn't it? You can get much fancier if
you want, but just this is useful enough for those quick little
You may also want to investigate Dialog or Whiptail.
If you are writing in C, you'll want to use ncurses or Newt.
Got something to add? Send me email.
Increase ad revenue 50-250% with Ezoic
More Articles by Tony Lawrence
Find me on Google+
© 2009-11-06 Tony Lawrence