在 Shell 脚本中创建包含某些内容的文件

Gow*_*ham 23 bash

我对 Shell Scripting 有点陌生,我想在脚本中创建一个新文件,并想添加内容然后关闭它。它不应该从用户那里获取参数。路径和内容中的所有内容都是预定义的。我该怎么做?

ger*_*ijk 28

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

#!/bin/bash

echo "some file content" > /path/to/outputfile
Run Code Online (Sandbox Code Playgroud)

>会写入所有stdin提供通过stdoutecho该文件outputfile在这里。

或者,您也可以tee为此使用管道。例如

echo "some file content" | tee outputfile
Run Code Online (Sandbox Code Playgroud)

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

如果您需要附加到当前存在的文件,请使用或>>代替。>tee -a

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


Aar*_*all 22

我认为使用here doc在脚本中创建新文件更好。它看起来更干净,我相信这会提高可读性。

例如:

cat > filename <<- "EOF"
file contents
more contents
EOF
Run Code Online (Sandbox Code Playgroud)

"-"<<-是可选的,允许标签缩进将被剥离在文件被创建时。周围的引号"EOF"防止“here doc”进行任何替换。