Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 如何与其他终端交互?_Bash_Ubuntu_Terminal - Fatal编程技术网

Bash 如何与其他终端交互?

Bash 如何与其他终端交互?,bash,ubuntu,terminal,Bash,Ubuntu,Terminal,我有两个终端窗口,T1和T2。T1运行一个监视器应用程序,必须全职运行 T2(bash脚本)用于控制T1并告诉T1开始扫描。 我的问题是,我想写一个脚本来启动扫描,但我需要知道扫描何时完成,以便在T2中正确地继续脚本 当开始扫描时,唯一的反馈在T1中,当扫描完成时,T1表示“成功…”,在T2中没有反馈 有没有办法写一个脚本来读出T1的成功信息 干杯我突然想到一些想法 如果python脚本开始扫描,它可能知道扫描何时完成以及是否工作,即其退出状态。如果是这种情况,您可以修改python脚本,将扫

我有两个终端窗口,T1和T2。T1运行一个监视器应用程序,必须全职运行

T2(bash脚本)用于控制T1并告诉T1开始扫描。 我的问题是,我想写一个脚本来启动扫描,但我需要知道扫描何时完成,以便在T2中正确地继续脚本

当开始扫描时,唯一的反馈在T1中,当扫描完成时,T1表示“成功…”,在T2中没有反馈

有没有办法写一个脚本来读出T1的成功信息


干杯

我突然想到一些想法

  • 如果python脚本开始扫描,它可能知道扫描何时完成以及是否工作,即其退出状态。如果是这种情况,您可以修改python脚本,将扫描的退出状态写入一个名为
    exitstatus.txt
    的文件,并从T2监视该文件,或者在python脚本周围放置一个包装器,执行相同的操作。请注意,要使其正常工作,您需要在开始每次扫描之前删除
    exitstatus.txt
    文件

  • 另一个想法可能是将scan命令的输出通过管道传输到
    tee
    并从那里传输到一个文件,然后从T2读取该文件

  • 另一个想法可能是在扫描之前在T2中运行命令
    tty
    ,以获取终端的设备特殊文件名,类似于
    /dev/ttys001
    。将其作为参数传递给T1到python脚本,然后它可以使用如下命令在终端T2上写入:

    echo成功>/dev/ttys001


您可以为IPC使用命名管道。在一个终端中尝试此操作:

mkfifo /tmp/fifo && read LINE < /tmp/fifo && echo $LINE; unlink /tmp/fifo
echo foo > /tmp/fifo

使用sockets和netcat在两个方向上进行通信可能更容易。

我想说这与终端本身无关,但您需要某种方式与监控程序进行通信,如管道或套接字。T2如何确切地告诉T1开始扫描?@MarkSetchell T2启动python脚本。结果显示在T1中。