Como declarar e atribuir valor a uma variável no shell script?

0

Eu preciso ter duas variáveis e deseja executar uma adição com essas variáveis no shell script.

Estou usando o script abaixo para isso, mas recebo um expr: non-numeric argument error durante a execução do mesmo.

#!/bin/sh
val1=10
val2=20
while [val1 -gt 5]
do
echo $val1
val1=$(expr $VAL + $BAL)
done
    
por newbie dev 24.12.2011 / 17:40

1 resposta

2

Isso está errado:

while [val1 -gt 5]

Deve ser:

while [ $val1 -gt 5 ]

... porque:

  • Você precisa do sinal de dólar em $val1 para se referir à variável.
  • Você precisa de um espaço entre o colchete [ e a variável. É um comando, caso contrário o shell primeiro expandirá $val1 para seu valor 10 e, em seguida, procuraria o comando [10 , que obviamente não pode ser encontrado.

Além disso, seu script deve funcionar em teoria, mas nem $VAL nem $BAL estão definidos, por isso é compreensível que você receba um erro.

    
por 24.12.2011 / 17:55