Você não especificou a natureza dos erros. Você deve sempre especificar a (s) mensagem (ns) de erro exata ao solicitar ajuda. Caso contrário, é como se você estivesse esperando que outras pessoas fizessem toda a sua depuração para você. Tome um segundo ou dois para fornecer as informações mais básicas e óbvias, e você provavelmente receberá muito mais ajuda.
No entanto, aqui estão algumas notas:
-
Ao ler o número de telefone, você tem um espaço, o que significa que você está lendo em duas variáveis separadas. Quando você tenta colocá-lo no arquivo, está chamando a variável por um nome diferente.
echo "Type the phone number:" read phone number #... echo "Phone Number: $phonenumber" >> Datacollection.txt
-
Você precisa de espaços entre colchetes (
[]
) e seu conteúdo. Assim, esta linha está errada:elif ["opt" = "Add another user"]; then
- Além do anterior, tenha cuidado com o que você está comparando. Você não tem nenhum cifrão na frente de
"opt"
, então você está comparando a string literal, não o valor dela. -
Sua rotina de seleção de opções está totalmente quebrada. Você precisará jogá-lo fora e reescrevê-lo, usando uma abordagem diferente. Dica: Quaisquer que sejam os tipos de usuários armazenados na variável que você passa para
read
. Você estará testando esse valor, então considere cuidadosamente o que o usuário precisa digitar e como você pode comunicar isso. Dica 2: Digitehelp select
para ver a documentação de uma boa maneira de abordar isso. -
Finalmente, uma ferramenta realmente valiosa para depurar seu script é
set -x
. Coloque-o no topo do seu script. Então você poderá ver tudo no seu script enquanto o shell o interpreta. Se algo parece errado, você encontrou um bug.