Script de shell lê problema [fechado]

0

Estou tentando criar um script de shell com o comando read , para que, quando eu executar o script, ele faça uma pergunta sim ou não ao usuário. Se o usuário digitar yes , o script continuará e, se ela gravar no , ele será interrompido.

Qual é a sintaxe para usar o comando read dessa maneira?

Estou executando o Ubuntu 13.04.

    
por Pentagon98 08.06.2014 / 20:45

2 respostas

1

Você provavelmente seria mais bem atendido pelo comando select , que permite ao usuário selecionar uma opção apresentada a eles.

#!/usr/bin/env bash

echo "Are you sure?"
select yn in "Yes" "No"; do
    case $yn in
        Yes ) break;;
        No ) exit;;
    esac
done

# Add whatever you want to do if the user answered "yes" here

Se o usuário respondeu "Não", o script sairá sem executar o código mais abaixo no script.

A única desvantagem de usar select é que as opções são selecionadas usando números. Então, como temos duas opções, o usuário não pode digitar "Sim", elas precisam digitar "1", etc.

    
por Tommy Brunn 08.06.2014 / 21:05
1

Todas as suas questões de programação bash de uma só vez: link - encontre o "Guia avançado de script de script".

Ele contém muitos exemplos, muito fáceis de ler ;-) - Eu tive algumas pausas no meu uso bash de vez em quando e, portanto, usei como um dicionário.

Além disso: bash embutido: s como ler tem ajuda disponível como em

help read

e, em seguida, uma resposta simples à sua pergunta:

echo -n "Y/N - Yes or No :" && read -N 1 ans && echo -e "\r$(tput el)You said $ans."

tput - imprime itens do banco de dados terminfo. "man terminfo" para mais.

    
por Hannu 08.06.2014 / 22:35