Pipe
貓和管道與重定向
這兩個命令有什麼區別?
cat /proc/uptime | awk '{print $1}'
< /proc/uptime awk '{print $1}'
具體來說,第二個命令是如何工作的?重定向操作符不是
<
必須帶有命令嗎?像這樣重定向文件的內容是什麼意思?
一般來說,在 bash 腳本
foo < bar
中< bar foo
是等價的。任何時候< filename
都由 shell 處理,這意味著與其關聯的命令將具有來自該文件的標準輸入。這不涉及額外的命令或過程;外殼自己做。執行
cat filename
讀取指定文件的內容並將它們寫入標準輸出。|
在兩個命令之間意味著將左側命令的標準輸出連接到右側命令的標準輸入。因此,您的兩個命令都具有將內容髮送
/proc/uptime
到 awk 的相同效果,但第一種方式會啟動一個額外的cat
過程來執行此操作。