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 Unix in a Nutshell, 4th Edition 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.