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
答案 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