5
鏈在Unix環境下,我想在命令鏈使用tee
像這樣:Unix和T恤 - 命令
$ echo 1; echo 2 | tee file
1
2
$ cat file
2
爲什麼file
最終只會爲具有從最終命令的輸出?
爲了討論的目的,我們假設我不能將它們分開並單獨運行命令。
鏈在Unix環境下,我想在命令鏈使用tee
像這樣:Unix和T恤 - 命令
$ echo 1; echo 2 | tee file
1
2
$ cat file
2
爲什麼file
最終只會爲具有從最終命令的輸出?
爲了討論的目的,我們假設我不能將它們分開並單獨運行命令。
嘗試:
(echo 1; echo 2) | tee file
如果沒有括號,它越來越被解析爲:
echo 1 ; (echo 2 | tee file)
它只有第二個命令的輸出,因爲分號表示shell的新語句。
只是把它們放進括號:
(echo 1; echo 2) | tee file
除了建立一個明確的子shell ,你可以使用'{echo 1;回聲2; } | tee文件「將輸出轉換爲文件。請注意,'{'必須與命令分隔一個空格,'}'必須出現在命令可能出現的位置(所以它在第二個分號後面)。另一種方法是創建一個包含兩個不可分割命令的新腳本,並將其輸出傳遞給'tee':'conjoined-twin-processes |發球區域文件'。 – 2015-07-10 03:00:07