Name

select

Synopsis

select x [in list]
do
    commands
done

Display a list of menu items on standard error, numbered in the order they are specified in list. If no in list is given, items are taken from the command line (via "$@"). Following the menu is a prompt string (set by PS3). At the PS3 prompt, users select a menu item by typing its number, or they redisplay the menu by pressing the Enter key. User input is stored in the shell variable REPLY. If a valid item number is typed, commands are executed. Typing EOF terminates the loop.

Example

PS3="Select the item number: "
select event in Format Page View Exit
do
    case "$event" in
    Format) nroff $file | lp;;
    Page)   pr $file | lp;;
    View)   more $file;;
    Exit)   exit 0;;
    *   )   echo "Invalid selection";;
    esac
done

The output of this script looks like this:

1. Format
2. Page
3. View
4. Exit
Select the item number:

Get bash Quick Reference now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.