我想运行一个相同的代码,它在Unix中工作正常,但在Linux中不工作。
示例代码:
if [“$ 1”-eq“”] then echo“No parameter passed!Please pass the number of rows are queued。” exit 1 fi echo“Parameter is $ 1”;如果条件在Unix和Linux env
在Linux环境
当运行SH /tmp/script.sh它引发错误 /tmp/script.sh:第1行:[::整数表达预期 参数是
当我运行SH /tmp/script.sh 100它thows错误 /tmp/script.sh:第1行:[::整数表达预期 参数是100
在Unix环境
当我运行SH /tmp/script.sh它说没有参数传递!请传递要排队的行数。
当我运行SH /tmp/script.sh 100它说参数是100
当我运行SH /tmp/script.sh ABCD它说没有参数传递!请传递要排队的行数。
任何人都可以解释我为什么表现不同?我认为这些功能不应该取决于环境。
输入'man test'。搜索'-eq'。 –
我在Linux中使用if [[“$ 1”-eq“”]]替换if [“$ 1”-eq“”],并且它工作正常。我仍然想知道如何以及为什么。 –
它看起来像你在'-eq'的描述中找到的和我发现的不一样。我想知道你的版本说什么。 –