Parece que a forma atual de obter informações através do read está errada, então a matemática está sendo feita em nada, então você acaba sem resposta. Você simplesmente precisa corrigir esse aspecto e o restante do código deve funcionar.
Como ler
Um trecho do seu código postado original mostra que você estava tentando salvar o primeiro número assim:
echo "Enter the first number"
read $num1
Em vez disso, tente usar -p para o prompt e nomeie a variável num sem cifrão. Você pode até mesmo testar o seguinte read -p ... em seu prompt de comando, assim você verá:
$ read -p "Enter the first number" num1
Enter the first number:
Agora digite 1:
$ read -p "Enter the first number" num1
Enter the first number: 1
Agora, se você for para echo $num1 , verá o valor com êxito:
$ echo $num1
1
-
-p the_prompt_texté uma maneira de incluir um prompt - em comparação com
echo,echoacrescenta um retorno de linha no final. Mas como-pnão, é uma boa ideia ter um espaço em branco extra como eu fiz, observe depois dos dois pontos:, eu tenho um espaço:"Enter the first number: ". Isto é apenas para que a entrada do usuário não apareça diretamente contra o cólon. - ao especificar variáveis para salvar a resposta, a sintaxe correta com leitura é não ter o
$, portanto tivemosreade, em seguida,num1
Então, com isso, você deve conseguir adaptar as read partes do seu script e isso funcionará bem.