A origem do erro: [: –le: binary operator expected
é o fato de você estar usando a unicode
versão de –
em vez da normal -
Observação: o mesmo se aplica ao unicode
”
que você está usando em vez do normal "
Eu reformatei seu código para ser o seguinte:
#!/bin/bash
echo "enter a value"
read -r n
s=0
i=0
while [ $i -le "$n" ]
do
if [ "$(expr $i%2)" -eq 0 ]
then
s=$(expr $s + $i)
fi
i=$(expr $i + 1)
done
echo "sum of n even numbers"
echo "$s"
Eu fiz as seguintes alterações:
- Substituiu a versão
unicode
dos caracteres que você usou - Adicionado
#!/bin/bash
- Excluído
space
após o sinal=
- Algumas melhorias extras.