Pipe
如何使用 tee 或其他類型的管道或輸出重定向進行標準輸入?
假設我想查看命令的輸出,例如
apt-get
. 但是,如果我要執行重定向輸出的命令,例如apt-get install some-application -y > apt_out.txt
或者
apt-get install some-application -y | tee apt_out.txt
那麼我將失去與程序輸入互動的能力。然而我的解決方法是使用
screen -L
會話,但是會有更清潔的東西嗎?
讓我們從功能集和行為的角度來看待這一點,而不是一些未指定的清潔度概念。
一種不如 的通用機制
screen -L
,但它仍然可以滿足您的目的screen
,而tee
不是(即允許輕鬆互動使用,並且當程序發現標準輸出不是終端時,不會使程序陷入其非互動或緩衝輸出模式),是script
命令。腳本 -c "apt-get install some-application" apt_out.txt
script
與is不同ptybandage
的機制適用於命令管道,並且不需要它自己的外部標準 I/O 實際上是終端。(實際上,它的主要案例是使非互動式標準 I/O 看起來像子程序的互動式標準 I/O。)這是一種說服程序在其互動/行緩沖模式下執行同時仍然使用的方法管道通過tee
方法。ptybandage apt-get install some-application 2>&1 | tee apt_out.txt
進一步閱讀