第10行的语法错误:`fi'意外

时间:2015-05-12 04:26:24

标签: unix shell

CorrectInstance=DEV
Instance_Name=DEV
if [ $Instance_Name == $CorrectInstance ]
then
   echo "Instance validated sucessfully"
else
   echo "Instance validation failed. Script exited."
   exit
fi

当我在脚本上面运行时,我遇到了错误。

Match.sh[3]: ^M: not found [No such file or directory]
Match.sh: line 3: syntax error at line 10: `fi' unexpected

请sugeest

2 个答案:

答案 0 :(得分:10)

^M也是\r所以你可能在某个时候在Windows系统上有这个,并在那里编辑了行序列结尾为\r\n的地方。如果有可用的话,请尝试在其上运行dos2unix,否则您可以使用sed之类的工具从行的末尾删除空格。

答案 1 :(得分:0)

取决于unix,我认为" =="是错的。
它应该是一个等号。 注意等号周围的空格 如果在没有这些空格的情况下运行它,它可能会分配一个变量并返回true而不是运行任何测试。

也将变量放在引号中。这样,如果他们失踪了你就会有#34;"而不是语法错误。

我只是出于习惯而使用那些{}。

如果我有$ XY =东西

print $ {XY} 123返回stuff123

print $ XY123返回Nothing,因为未定义变量$ XY123。

重做被轰炸的第3行。
如果[" $ {Instance_Name}" =" $ {CorrectInstance}" ]。那么

blah blah blah