Alguém pode me dizer o que estou fazendo errado / como consertar este script de shell?

1

O que eu quero alcançar é se o nome for "Instrutor", ele responder "Boa Tarde, Instrutor", se houver outro nome, ele responderá "Boa Noite, 'nome'" e enviará o resultado para o arquivo. arquivo txt.

#!/bin/bash

read -p "what's your name?"

if [ "$name" = "Instructor" ]
then 
    echo "Good Afternoon, Instructor"
else
    echo "good Evening, "$name" >> file.txt
fi
    
por user218619 01.03.2017 / 20:21

1 resposta

3

Você não está lendo o nome do usuário e usa name e, em seguida, NAME (essas são duas variáveis diferentes). Além disso, $name deve ser duplicado na declaração if.

Para ler a entrada do usuário na variável name , use read :

read name

Com bash , você também pode usar read para exibir um prompt personalizado, se desejar:

echo 'Hello!'
read -p "What's your name? > " name

Se você não der a read o nome de uma variável, o texto entrará em uma variável chamada REPLY por padrão.

    
por 01.03.2017 / 20:30