Novo no Unix, quer criar uma entrada de usuário simples para reiniciar ou deixar o programa [fechado]

0

Estou fazendo um programa e quero um eco simples perguntando se o usuário quer fazer o pedido novamente ou deixar o programa. Está no Shell no Unix

O programa é simples eco e leitura de variáveis de ordenação de alimentos. Que comida você quer, quanto KG, etc, e resume tudo no final.

Agora eu quero que o programa pergunte se o usuário deseja "Pedir novamente?", mas não tenho idéia de como adicionar uma instrução if para Sim ou Não quando inserida para reiniciar o programa ou sair se eles disserem não .

Qualquer ajuda apreciada. Parece muito simples, mas não encontrei ajuda on-line em nenhum lugar.

    
por Dillan 22.04.2018 / 00:12

1 resposta

1

Eu acho que você quer algo assim:

#!/bin/sh

read -rp 'Fish or chicken? ' protein
read -rp 'Beans or rice? ' starch
read -rp 'Broccoli or asparagus? ' veggie
read -rp 'Beer or beer? ' drink

echo "You have ordered the $protein with a side of $starch and $veggie, and to drink you will have $drink"

while true; do
    read -rp 'Would you like to order again? ' order
    if echo "order" | grep -iq 'yes'; then
        exec $0
    elif echo "order" | grep -iq 'no'; then
        exit 0
    fi
done

read é um shell interno que lê a entrada padrão. Com a opção -p , ele "avisa" o usuário e define a variável REPLY padrão ou uma variável especificada (proteína, amido, veggie, bebida, etc)

$0 é um parâmetro especial do shell que expandirá para o nome do shell em um script o nome do script

Se a resposta do usuário for "Deseja solicitar novamente?" é yes , então o script será executado novamente, senão ele será encerrado.

Referências

leia

parâmetros especiais

se condicionais

while loop

    
por 22.04.2018 / 00:19

Tags