问题描述
我有一个使用curses的python项目。我想打开另一个外壳来输送我的一些输出,我该如何实现呢?
说明:
我正在使用python的Curses模块编写TUI。因此,我最初的bash shell是curses窗口。
如果可以用于调试目的,我希望在另一个bash shell中提供实时更新的变量。
我要问的是,是否有办法使python程序打开另一个shell并将标准输出通过管道传递到该shell,而不是默认的shell(在我的情况下是curses环境的窗口)。
解决方法
几种可能性。
启动第二个“终端”窗口,然后在其中运行:
tty
/dev/ttys000 # sample output - note down for next command
在运行curses
的第一个终端中,执行以下操作:
echo "Hi" > /dev/ttys000
替代方法...用以下方法制作fifo:
mkfifo fifo
在第二个新终端中,运行:
while : ; do cat fifo; done
在第一个终端中,运行:
echo "Hi" > fifo
替代方法...尾部文件。
在您的curses
终端中,将消息附加到文件:
echo "Message" >> log.txt
在另一个终端中,遵循日志文件的结尾:
tail -f log.txt