2015-12-08 48 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文件描述符)。我不希望这样一个过程能够适当地完成任何规律性。

但是,我可能也很错。