将运行应用程序输出的一部分存储到bash脚本变量中

时间:2014-11-06 19:53:37

标签: linux bash

在linux bash脚本中,我有一个在后台启动应用程序的命令(kdmx),它生成类似于本段后面的示例的输出。我需要获取部分输出(更具体地说是“/ dev / pts / 1”和“/ dev / pts / 2”,即下面示例中第4行和第5行的一部分,其格式始终为“/ dev” / pts / *“,并将其存储在变量$ port1和$ port2上),棘手的部分是kdmx是一个正在运行的应用程序,所以我推断使用grep,awk等来捕获它不会那么容易(顺便说一句,我不掌握的工具)。输出和脚本如下。

  1. 脚本摘录:

    #!/bin/bash
    
    port1=""
    port2=""
    
    ./kdmx -n -d -p/dev/ttyS0 -b115200 &
    (...)
    
  2. kdmx执行输出示例:

    $ ./kdmx -n -d -p/dev/ttyS0 -b115200 &  
    [1] 6246  
    serial port: /dev/ttyS0  
    Initalizing the serial port to 115200 8n1  
    /dev/pts/1 is slave pty for for terminal emulator  
    /dev/pts/2 is slave pty for gdb
    

1 个答案:

答案 0 :(得分:0)

我刚刚向kdmx提交了一个补丁系列,以公开您在状态文件中请求的信息。

补丁系列位于http://sourceforge.net/p/kgdb/mailman/message/33137836/

使用状态文件功能的示例位于http://elinux.org/Kdmx#example_2_.28automate_paths_of_gdb_pty_and_terminal_emulator_pty.29