【发布时间】:2022-01-17 22:53:22
【问题描述】:
我知道输出未被识别为整数,但我不明白为什么?该文件超过 5 行。
$ if [ "$(wc -l test.txt)" -gt "$5" ]; then
echo changes found;
else
echo No changes found;
fi
bash: [: 6 test.xml: integer expression expected
No changes found
【问题讨论】:
-
我猜想
$5,第五个命令行参数,计算结果为空字符串,从而混淆了测试 -
...或另一个非整数。
-
只需使用
$(wc -l <test.txt)即可避免打印文件名! -
错误消息将比较的左侧引用为字符串
6 test.xml(wc调用的输出;假设您打算在示例代码),因此错误消息的其余部分integer expression expected(即,6 test.xml不是整数)
标签: bash