bash 命令 cat 在 if 语句中不起作用
bash command cat doesn't work inside an if statement
我可以使用 bash 脚本和 cat
命令创建包含内容的文件,如下所示:
#!/bin/sh
cat >myFyle.txt <<EOL
Some text inside the file
EOL
这按预期工作。但是当我尝试在 if 语句中使用它时,如下所示:
#!/bin/sh
if true; then
cat >myFyle.txt <<EOL
Some text inside the file
EOL
fi
我收到错误消息:
Syntax error: end of file unexpected (expecting "fi")
为什么这不起作用,我如何在 if 语句中正确使用 cat
?
注意:if 语句的条件是示例性的。这只是为了确保示例执行代码。
结束分隔线必须完全 EOL
。前面没有空格。
if true; then
cat >myFyle.txt <<EOL
Some text inside the file
EOL
#^^^ Spaces above will be preserved!
fi
您可以使用<<-EOL
,然后在前面使用制表符(不是空格!),它会被忽略。
if true; then
cat >myFyle.txt <<-EOL
Some text inside the file
EOL
#^^^ - This is a tab. Tabs in front will be ignored.
fi
我可以使用 bash 脚本和 cat
命令创建包含内容的文件,如下所示:
#!/bin/sh
cat >myFyle.txt <<EOL
Some text inside the file
EOL
这按预期工作。但是当我尝试在 if 语句中使用它时,如下所示:
#!/bin/sh
if true; then
cat >myFyle.txt <<EOL
Some text inside the file
EOL
fi
我收到错误消息:
Syntax error: end of file unexpected (expecting "fi")
为什么这不起作用,我如何在 if 语句中正确使用 cat
?
注意:if 语句的条件是示例性的。这只是为了确保示例执行代码。
结束分隔线必须完全 EOL
。前面没有空格。
if true; then
cat >myFyle.txt <<EOL
Some text inside the file
EOL
#^^^ Spaces above will be preserved!
fi
您可以使用<<-EOL
,然后在前面使用制表符(不是空格!),它会被忽略。
if true; then
cat >myFyle.txt <<-EOL
Some text inside the file
EOL
#^^^ - This is a tab. Tabs in front will be ignored.
fi