2014-07-03 50 views
2

我想在bashzsh中運行Python解釋器作爲劣勢進程。在此期間,我想向該進程發送命令並查看STDOUT中的輸出。類似這樣的:監督一個Python子殼

$ in=/dev/shm/python_test_in 
$ out=/dev/shm/python_test_out 
$ touch $in $out 
$ python < $in > $out 
$ echo print(1+1) > $in 
$ cat $out 

不幸的是,這是行不通的。我正在運行GNU/Linux。

+0

如果可能,使用'expect'將是正確的選擇。 – ymonad

回答

0

你需要的是一個管道:

mkfifo ./in ./out 
python <./in> ./out & 
echo "print(1+1)" > ./in 
cat ./out 

然而,以這種方式,Python解釋器將立即執行此之後因爲上面寫的「回聲」行的EOF退出。我正在尋找防止Python解釋器退出EOF的方法。