você está aqui: Home  → Arquivo de Mensagens

O Loop Select do Korn Shell

Colaboração: Cláudio Lopes

Data de Publicação: 28 de Agosto de 2003

A instrucao Select no Korn Shell cria um menu. A forma de utilização do comando é semelhante ao comando For. O legal é que o Korn Shell automaticamente já enumera as opções fornecidas ao comando para que seja gerado o menu.

Após mostrar a lista de escolhas do menu, o shell mostra um prompt e espera por uma entrada do usuário. Este prompt é gerado baseado no valor da variável de ambiente PS3. O usuário deve digitar o valor da opção desejada, a qual é adicionada pelo comando. Caso o usuário não forneça uma opção válida, o prompt é novamente mostrado. Isto se deve ao armazenamento do input do usuário em uma variável de ambiente chamada REPLY.

Você pode também utilizar o loop select em conjunto com o loop case, o que faz com que uma opção possa definir um conjunto de ações.

Para finalizar o Loop, deve-se enviar um sinal à ele através da sequência CTRL+D. Outra forma, é a criação de uma opção "exit" a qual contém a instrução Break, que finaliza um loop.

A seguir demonstrarei um exemplo completo da utilização deste loop.

  #!/bin/ksh
  
  PS3=Qual a sua escolha: 
  
  Select fruta in banana maca pera sair
  do
     case $fruta in 
  	banana)
  		echo Sua escolha foi a banana !
  		;;
            maca)
  		echo Sua escolha foi a maca !
  		;;
            pera)
  		echo Sua escolha foi a pera !
  		;;
            sair)
  		break
  		;;
  	     *)
  		echo Digite um valor entre 1-4.
  		;;
     esac
  done

A execução deste script resultará em:

  $./menu1.ksh
  1)banana
  2)maca
  3)pera
  4)sair
  Qual a sua escolha: 

Qualquer dúvida ou sugestão, podem enviar e-mail para <claudioplopes (a) uol com br>.



Veja a relação completa dos artigos de Cláudio Lopes

 

 

Opinião dos Leitores

Seja o primeiro a comentar este artigo
*Nome:
Email:
Me notifique sobre novos comentários nessa página
Oculte meu email
*Texto:
 
  Para publicar seu comentário, digite o código contido na imagem acima
 


Powered by Scriptsmill Comments Script