我有2个终端窗口,T1和T2。 T1运行监视器应用程序,必须全时运行。
T2(bash脚本)用于控制T1并告诉T1开始扫描。 我的问题是我想编写一个开始扫描的脚本,但我需要知道扫描何时完成以便在T2中正确地继续脚本。
当开始扫描时,唯一的反馈是在T1中,当扫描完成时T1表示“Succuess ...”,在T2中没有反馈。
有没有办法编写脚本来读出T1的成功消息?
干杯
答案 0 :(得分:0)
想到一些想法......
如果python脚本开始扫描,可能它知道扫描何时完成以及是否有效 - 即退出状态。如果是这种情况,您可以修改python脚本以将扫描的退出状态写入名为exitstatus.txt
的文件并从T2监视该文件,或者在python脚本周围放置一个包装器来执行相同的操作。请注意,要使其正常工作,您需要在开始每次扫描之前删除exitstatus.txt
文件。
另一个想法可能是将扫描命令的输出传输到tee
并从那里传输到文件并从T2读取该文件。
另一个想法可能是您在扫描之前在T2中运行命令tty
以获取终端设备的特殊文件名 - 类似于/dev/ttys001
。将其传递给T1作为python脚本的参数,然后可以使用如下命令在终端T2上写入:
echo Success > /dev/ttys001
答案 1 :(得分:0)
您可以为IPC使用命名管道。在一个终端试试这个:
mkfifo /tmp/fifo && read LINE < /tmp/fifo && echo $LINE; unlink /tmp/fifo
在另一个终端:
echo foo > /tmp/fifo
使用套接字和netcat,双向通信可能更容易。