我有一对可执行文件1) code_A 和2) code_B ,它们使用两个 message_queues 进行通信,因此, code_A < / strong>和 code_B 都将一对消息队列 key s(key_t)作为命令行参数msgQ_key1和msgQ_key2。与两个命令行参数一起, code_A 还接受了两个称为MAC和IP的参数。这意味着作为一个完整的应用程序,该应用程序需要四个参数 MAC,IP,msgQ_key1和msgQ_key2 。 因此,我有一个文件,该文件在一行中包含这些参数,每个参数之间都用空格隔开。 有时文件中可能包含由新行分隔的多组参数,如下所示
所以我有一个要运行应用程序的两个实例(两对code_A和code_B,在每对中code_A可以在stdout上打印一些内容,但是code_B可以在后台运行) 现在,我想编写一个脚本文件,逐行从文件中读取文件,对于每行读取,在单独的终端中打开code_A和code_B的实例(这意味着对于上面的(两行)示例将有code_A_1 ,code_B_1和code_A_2和code_B_2),并且如果我要关闭一个实例,它应该关闭正确的一对code_A和code_B。
#!/bin/bash
#make
gcc decisionTree.c -o code_B
gcc smu.c -o code_A
IFS=" "
while read MAC IP msgQ_key1 msgQ_key2
do
echo "$MAC $IP $msgQ_key1 $msgQ_key2"
./code_B $MSGQID1 $MSGQID2
gnome-terminal -e ./code_A $MAC $IP $msgQ_key1 $msgQ_key2
done < config.dat