📜  bash 将多行回显到文件 - Shell-Bash (1)

📅  最后修改于: 2023-12-03 14:39:28.509000             🧑  作者: Mango

Bash:将多行输出保存到文件

当你在编写 Shell 脚本时,你可能需要将多行输出保存到文件中。这个问题可以通过在 Bash shell 中使用重定向操作符 >>> 来解决。

> 重定向运算符

在 Bash shell 中,> 用于将输出覆盖到一个文件中:

echo "Hello, world!" > myfile.txt

这将输出 "Hello, world!" 到文件 myfile.txt 中,如果文件不存在就创建一个新的。如果文件已经存在,那么它将被覆盖,即原有的内容被新内容所替代。

你可以尝试一下以下的命令:

echo "This is the first line." > myfile.txt
echo "This is the second line." > myfile.txt

这将只会在 myfile.txt 文件中保留 "This is the second line."。

>> 重定向运算符

在 Bash shell 中,>> 用于将输出追加到一个文件中:

echo "Hello, world!" >> myfile.txt

这将在 myfile.txt 文件的末尾添加 "Hello, world!",如果文件不存在就创建一个新的。如果文件已经存在,那么新内容将被追加到原有内容的末尾。

你可以尝试一下以下的命令:

echo "This is the first line." >> myfile.txt
echo "This is the second line." >> myfile.txt

这将在 myfile.txt 文件中保留两行内容:

This is the first line.
This is the second line.
将多行输出保存到文件

在 Bash shell 中,要将多行输出保存到文件中,你可以使用 Here Document 语法。它是一种在脚本中嵌入文本块的方法,看起来像是输入多行文本。

以下是一个使用 Here Document 语法将多行输出保存到文件中的例子:

cat <<EOF > myfile.txt
This is the first line.
This is the second line.
EOF

这将在 myfile.txt 文件中保存两行内容:

This is the first line.
This is the second line.

首先,cat 命令通过 <<EOF 开始 Here Document。当遇到行末的 EOF 标记时,Here Document 结束。EOF 可以用任何其他字符串替换,只要保证在 Here Document 中不出现就可以了。

然后,Here Document 中的文本块被重定向到 myfile.txt 文件中。

结论

在 Bash shell 中,你可以使用 >>> 重定向运算符将输出保存到文件中。如果你要保存多行输出,可以使用 Here Document 语法。