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
You should read it
Maybe you are interested
SpaceX's Crew Dragon spacecraft successfully assembled with the ISS station, completely automated Will NASA partner with Tesla to create the most unprecedented lunar exploration vehicle? SpaceX is about to blow up a tens of millions of dollars worth of boosters on the Atlantic The Windows era will continue until 2023 Top 12 hottest things in the universe NASA announces a stunning series of GIF images that capture the historic moments of the aerospace industry