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