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 valor10
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.