这两个命令有什么区别?
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
进程来执行此操作。