使用 Shell 脚本创建包含部分内容的文件

使用 Shell 脚本创建包含部分内容的文件

我对 Shell 脚本还不太熟悉,我想在脚本中创建一个新文件,并添加内容然后关闭它。它不应该接受用户的参数。路径和内容中的所有内容都是预定义的。我该怎么做?

答案1

只需使用输出重定向。例如

#!/bin/bash

echo "some file content" > /path/to/outputfile

将把提供的>所有内容写入到这里文件中。stdinstdoutechooutputfile

或者,您也可以使用tee管道来实现这一点。例如

echo "some file content" | tee outputfile

请注意,任何示例都将覆盖现有的outputfile

如果你需要附加对于当前存在的文件,使用>>而不是>tee -a

如果您不接受此行中的用户输入,则任何用户输入都无法改变此处的行为。

答案2

我认为最好使用这里是文档在脚本中创建新文件。它看起来更简洁,我相信这会增加可读性。

例如:

cat > filename <<- "EOF"
file contents
more contents
EOF

in是可选的,允许使用制表符缩进"-"<<-这将剥离当文件创建时。 两边的引号"EOF"阻止“此处文档”进行任何替换。

相关内容