1
對於特定的應用,可能有一個標誌或配置可以設置,例如, git diff --no-pager
。控制是否有任何程序使用尋呼機(不能使用尋呼機)的標準方法是什麼?
但我不想改變任何默認行爲或任何東西。我只是試圖強制(對於腳本PTY事件的特定實例)輸出以非交互方式出現。
我能想到的兩種方法:
......或者...... cat <(command)
這些命令在PTY(具體而言,它們通過script.sh發送到tmux
要運行,就像tmux new-window script.sh
),這實際上並不像運行腳本(就像它是如何寫入的),而是像實際輸入它一樣。
我假設第一個cat
方法實際上是要fork出一個程序並製作一個管道,以便可能慢一點。據我所知,雖然第二種方法做同樣的事情。我怎樣才能避開使用貓?這是一個真正有用的使用cat
??
我想到了兩個辦法:
mkfifo fifo
command > fifo &
cat fifo
好吧,這看起來一個愚蠢的,是長手|
。
command > file &
tail -f file
如何知道文件寫入完成的時間?
rm -f file
touch file
tail -f file &
PID=$!
command >> file
kill $PID
非常迂迴。
還有其他可能的方法嗎?哪一個最好?
Oooooh,這是整潔!我想知道是否有任何程序不檢查PAGER,但仍可以去交互化。例如,我知道我實際上可以做像'printf'這樣的東西\ n「| vim -c「:BundleInstall」',使Vim接受一個Enter(用於消除裝載錯誤配置時出現的錯誤消息),這是此答案不包含的某些帶外巧妙的示例。 –
...仍然使用貓。也許我可以避開貓嗎? (因爲否則我只想管它給貓,因爲我覺得有更高的機會會正常工作) –
這些程序期望'$ PAGER'中有東西可以插入;貓是簡單地迴應未經修改的輸入的最方便的選擇。 –