2015-12-08 74 views
0

我試圖管一些輸入(如在標準輸入,而不是一個命令行參數)從一個文件到一個掛起的進程在Linux機器上,例如,管輸入到掛起的進程

cat file > fg 

但是,我似乎無法爲此找到正確的命令。到目前爲止,我已經試過

file > fg 
file | fg 
file - | fg 
fg < file 
fg < cat file 

我知道開始一個新的過程,但我特別需要有一個掛起的進程要做到這一點時,它們中的至少一個會工作。有沒有專門爲我所尋找的命令序列?

另外,我也可以使用python -c打印輸入,但是我還沒有成功。

回答

2

我相信這是不可能的。當進程暫停時,它已經打開了stdin,stdoutstderr文件描述符。對於你想要的,bash需要某種方式強制關閉暫停進程的stdin,然後用新的輸入fd重新打開它。如果有什麼辦法可以做到這一點,並不涉及一些非常棘手的代碼(例如,在掛起的進程中創建線程,暫停主線程,使用新線程關閉並重新打開stdin文件描述符)。我不希望這樣一個過程能夠適當地完成任何規律性。

但是,我可能也很錯。