错误:Shell脚本返回一元运算符是预期的错误消息

时间:2012-05-03 08:50:44

标签: bash shell scripting

我正在修复给定的shell脚本,我收到以下错误消息

line 322: [: ==: unary operator expected

此行返回此错误。

 if [ $4 == "managed?.out" ];then

有人可以解释一下导致此错误的原因

也有人可以解释使用的目的是什么?在“托管?.out”

提前感谢任何帮助

3 个答案:

答案 0 :(得分:5)

您需要引用$4

if [ "$4" == "managed?.out" ];then

答案 1 :(得分:1)

将if语句更改为

if [ "$4" == "managed?.out" ];then

双引号只在你使用$ 4时是必要的,如果你的变量是$ string,你就不需要它们。

应该“?”被解释为bash-wildcard?如果是的话,你需要使用

if [[ "$4" == managed?.out ]];then

答案 2 :(得分:0)

尝试:

if [[ $4 == "managed?.out" ]];then