📅  最后修改于: 2023-12-03 14:39:28.509000             🧑  作者: Mango
当你在编写 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 语法。