cat 和管道与重定向

cat 和管道与重定向

这两个命令有什么区别?

cat /proc/uptime | awk '{print $1}'

< /proc/uptime awk '{print $1}'

具体来说,第二个命令是如何工作的?重定向操作符不是<必须带有命令吗?像这样重定向文件的内容意味着什么?

答案1

一般来说,foo < bar< bar foo在 bash 脚本中是等效的。任何时候< filename由 shell 处理,都意味着与其关联的命令的标准输入将来自该文件。不涉及额外的命令或过程; shell 自己做这件事。

运行cat filename读取指定文件的内容并将其写入标准输出。|两个命令之间意味着将左侧命令的标准输出连接到右侧命令的标准输入。

因此,这两个命令具有将内容发送/proc/uptime到 awk 的相同效果,但第一种方法会启动一个额外的cat进程来执行此操作。

相关内容