2012-03-01 96 views
3

我想在Linux下学习一点或两点关于进程通信,所以我写了2个简单的C程序,它们相互通信。从Linux下的C程序运行多个C程序

然而,这是一个有点恼人必须手动运行它们每一次,所以我想知道有没有办法让将运行他们两个程序,是这样的:

./runner program1 program2 

我正在使用最新的Ubuntu和Bash shell。

回答

4

run.sh脚本

#!/bin/sh 
./program1 & 
./program2 & 

运行命令:

$sh run.sh 
0

只要编写一个shell脚本来做你想做的事 - 你不需要使用C程序来运行C程序。

2

这条线将做(Bash中):

program1 & program2 & 

如果你想记录输出:如果你想运行在两个单独的终端命令

program1 >output1.txt & program2 >output.txt & 

xterm -e program1 & xterm -e program2 & 
0

为什么不使用这样的:

./program1;./program2 

./program1 &;./program2 & 

我不知道为什么有人认为这是没有用的,但它确实有效。

当然你可以写一个脚本,但脚本的内容是什么?仍然是同样的事情。

您可以立即更改它,无需先打开脚本。

0

请确实按照您的要求做,首先创建一个名为runner的文件,它将成为shell脚本。

#!/bin/bash 

for arg in [email protected] 
do 
$arg & 
done 

在bash [email protected]是传递给脚本的所有参数数组,这使得没有仅限于启动两个程序的脚本。 请注意,使用此脚本启动的任何程序都需要位于$PATH或作为./program1传递给脚本。

./runner ./program1 program2 

在该示例program1不在$PATHprogram2是。