'$int'
é um erro de citação que você teria visto facilmente se tivesse executado o script
bash -vx schript.sh
Não há expansão entre aspas simples. Você precisa de:
if [ "$int" -lt 0 ]
Encontrei o erro integer expression expected
no seguinte código:
#! /bin/bash
# test integer: evaluate the value of integer
int=-5
if [ -z "$int" ]; then
echo 'int is empty.' >&2
fi
if [ "$int" -eq 0 ]; then
echo "int is zero"
else
if [ '$int' -lt 0 ]; then
echo "int is negative."
else
echo 'int is positive.'
fi
if [ $((int % 2)) -eq 0 ]; then
echo 'int is even.'
else
echo 'int is odd.'
fi
fi
Execute e obtenha o relatório de erros
$ bash test_integer.sh
test_integer.sh: line 14: [: $int: integer expression expected
int is positive.
int is odd.
Eu verifiquei várias vezes, mas não consegui localizar o erro,
que parecem linha-a-linha comform para o livro
Qual é o problema com o meu código?
Tags shell