linux bash大于代码-gt给出错误[:太多的参数

时间:2017-05-11 05:36:51

标签: linux bash shell unix sh

尝试执行脚本

echo "count $count"   <!--  getting printed as count 10 --->

if [ $count -gt 0 ]
then
   echo "Greater than 0"
else
   echo "Less than 0"
fi

当我在我的linux测试环境中执行此脚本时,它可以正常工作而不会出错。当我尝试在生产Linux环境中执行时,我在if代码行中引发错误,提到 [:太多参数。任何人都可以帮助我。任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:3)

$count可能包含的不仅仅是生产中的数字。您可以将其打印到调试,但您也可以将其包装在引号中以确保它只有一个单词。如果你引用它:

[ "$count" -gt 0 ]

你可能会得到:

bash: [: foo: integer expression expected

错误。

你得到的原始&#34;太多的论点&#34;在这种情况下出错,你偶然有额外的选择:

$ [ -n 0 -gt 0 ]
[: too many arguments

您还可以使用bash -x path/to/script运行脚本,以确切了解bash看到/正在执行的内容。

答案 1 :(得分:0)

从评论来看,似乎IFS变量已更改为空格 以下命令重现错误

view.setFocusable(true);