在bash中转义if语句

时间:2014-11-26 22:04:55

标签: bash

我在bash中有一行:

if [ -e /home/somefile.xml ]; then
 mv /home/somefile.xml /home/folder.fi/somefile.xml
fi

现在我的编辑器将folder.fi fi部分作为代码着色。我怎么能逃脱它,它真的认为它的代码?

3 个答案:

答案 0 :(得分:2)

您的编辑器的语法突出显示不正确。忽略它是安全的。文件名中的fi不会结束if块。

答案 1 :(得分:1)

[

之前和之后需要空格
if [ -e /home/somefile.xml ]; then
 mv /home/somefile.xml /home/folder.fi/somefile.xml
fi

答案 2 :(得分:1)

.fi不是问题,bash没有解释路径中间的点。 相反,你在第一行缺少空格

if [ -e /home/somefile.xml ]; then
  mv /home/somefile.xml /home/folder.fi/somefile.xml
fi

另外,我建议您将文件路径放在双引号中,如下所示:

mv "/home/somefile.xml" "/home/folder.fi/somefile.xml"

编辑器应该用引号正确解释它,即使你的第一个代码是正确的。