bash - "cat > somefilename <<EOF"(特别是大于号和双小于号)在 shell 中有什么作用?

标签 bash shell

刚刚遇到以下命令:

cat > myspider.py <<EOF

但我不确定 > 的用途和 << .

最佳答案

<<EOF是 heredoc 的开始。此行之后和下一行之前的内容仅包含 EOF在 stdin 上被馈送到进程 cat .

> myspider.py是标准输出重定向。 myspider.py如果它已经存在(并且是一个常规文件)和 cat 的输出将被截断将写入其中。

cat在没有命令行参数的情况下(这里是这种情况,因为重定向被解释为关于如何设置进程的 shell 指令,而不是作为参数传递给 cat)从其输入读取并写入其输出, <<EOF指示应将以下行作为输入写入流程,>myspider.py指示输出应写入 myspider.py , 这因此将所有内容写入下一个 EOF进入myspider.py .


参见:

关于bash - "cat > somefilename <<EOF"(特别是大于号和双小于号)在 shell 中有什么作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39583092/

相关文章:

regex - 在sed中查找并替换文本文件中的多个字符串

带有 grep 和 cut 的 bash 脚本 : command not found

powershell - 如何使用PowerShell参数

linux - 如何在不运行 source 命令的情况下将子 shell 的执行行打印到主 shell?

macos - 在单用户模式下从桌面删除文件 osx

从命令行传递字符串时的 Bash 怪癖

regex - 将重复的正则表达式模式捕获为一组,在 bash 脚本中使用 sed

linux - 是否可以安排一个自动化任务每小时在特定终端运行一次?

regex - bash 正则表达式(或测试)奇怪的行为

linux - Linux环境下使用shell脚本读取excel的列