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.
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
Tinder integrates a new AI tool to automatically select the most suitable profile photo for users
How to round the corners of a selection in Photoshop is simple and easy
Fix error The selected disk has an MBR partition table when installing Windows, MBR - GPT hard drive error
4 ways to select multiple files on Mac
Solve the Error of No Photos Selected on the Phone
How to Select All on Mac