Unix / Linux Shell - O Loop selecionado
o selectloop fornece uma maneira fácil de criar um menu numerado a partir do qual os usuários podem selecionar opções. É útil quando você precisa pedir ao usuário para escolher um ou mais itens de uma lista de opções.
Sintaxe
select var in word1 word2 ... wordN
do
Statement(s) to be executed for every word.
done
Aqui, var é o nome de uma variável eword1 para wordNsão sequências de caracteres separados por espaços (palavras). Cada vez que ofor o loop é executado, o valor da variável var é definido para a próxima palavra na lista de palavras, word1 para wordN.
Para cada seleção, um conjunto de comandos será executado dentro do loop. Este loop foi introduzido emkshe foi adaptado para o bash. Não está disponível emsh.
Exemplo
Aqui está um exemplo simples para permitir que o usuário selecione uma bebida de sua escolha -
#!/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
O menu apresentado pelo loop de seleção se parece com o seguinte -
$./test.sh
1) tea
2) cofee
3) water
4) juice
5) appe
6) all
7) none
#? juice
Available at home
#? none
$
Você pode alterar o prompt exibido pelo loop de seleção alterando a variável PS3 da seguinte forma -
$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
$