Select loop in Shell

The select loop provides an easy way to create a numbered menu from which the user can select. It is useful when you want to ask the user to select one or more items from a list of options.

The select loop provides an easy way to create a numbered menu from which the user can select. It is useful when you want to ask the user to select one or more items from a list of options.

Syntax in Unix / Linux

 select var in word1 word2 . wordN do cac lenh de thuc thi cho moi word . done 

Here, var is the name of a variable and word1 to wordN is a sequence of characters separated by spaces. Each time the loop executes, the var variable value is set to the next word in the list of words, from word1 to wordN.

For each option, a set of commands will be executed inside the loop. This loop was introduced in ksh and was adjusted into bash . It is not available in sh.

For example in Unix / Linux

The simple example below gives the user a drink option in the list of drinks.

 #!/bin/ksh select DRINK in tea cofee water juice appe all none do case $DRINK in tea | cofee | water | all ) echo "Go to canteen" ;; juice | appe ) echo "Available at home" ;; none ) break ;; *) echo "ERROR: Invalid selection" ;; esac done 

The menu displayed by the select loop looks like this:

 $ ./ test . sh 1 ) tea 2 ) cofee 3 ) water 4 ) juice 5 ) appe 6 ) all 7 ) none #? juice Available at home #? none $ 

You can change the prompt displayed by the select loop by changing the PS3 variable as follows:

 $PS3 = "Please make a selection => " ; export PS3 $ ./ test . sh 1 ) tea 2 ) cofee 3 ) water 4 ) juice 5 ) appe 6 ) all 7 ) none Please make a selection => juice Available at home Please make a selection => none $ 

According to Tutorialspoint

Previous post: Loop until in Shell

Next lesson: Regular Expression in Unix / Linux

Update 25 May 2019
Category

System

Mac OS X

Hardware

Game

Tech info

Technology

Science

Life

Application

Electric

Program

Mobile