我integer expression expected
在以下代码中遇到错误:
#! /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
运行并得到错误报告
$ bash test_integer.sh
test_integer.sh: line 14: [: $int: integer expression expected
int is positive.
int is odd.
我检查了多次但未能找到错误,
这似乎与书上的内容相符
我的代码有什么问题?
答案1
'$int'
是一个引用错误,如果您运行脚本,您很容易看到该错误
bash -vx schript.sh
单引号内没有扩展。你需要:
if [ "$int" -lt 0 ]