Linuxでのプロセス通信について少し勉強しようとしているので、お互いに通信する2つのシンプルなCプログラムを書いています。LinuxのCプログラムから複数のCプログラムを実行する
しかし、それは手動で一つ一つの時間をそれらを実行する必要が少し迷惑なんだ、私は知りたいのですが、それらの両方を実行するプログラムを作るための方法があり、このような何か:
./runner program1 program2
私は最新のUbuntuとBashシェルを使用しています。
Linuxでのプロセス通信について少し勉強しようとしているので、お互いに通信する2つのシンプルなCプログラムを書いています。LinuxのCプログラムから複数のCプログラムを実行する
しかし、それは手動で一つ一つの時間をそれらを実行する必要が少し迷惑なんだ、私は知りたいのですが、それらの両方を実行するプログラムを作るための方法があり、このような何か:
./runner program1 program2
私は最新のUbuntuとBashシェルを使用しています。
run.shスクリプト
#!/bin/sh
./program1 &
./program2 &
runコマンド:
$sh run.sh
Cプログラムを実行するためにCプログラムを使う必要はありません。
この行は(バッシュに)行います:
program1 & program2 &
あなたが出力記録したい場合:
:あなたは二つの別々の端末でコマンドを実行したい場合program1 >output1.txt & program2 >output.txt &
を
xterm -e program1 & xterm -e program2 &
これは使用しない理由:
./program1;./program2
または
./program1 &;./program2 &
を誰かが、それは有用ではないだと考え、なぜ私にはわからないが、それは実際に動作します。
確かにスクリプトを書くことはできますが、スクリプトの内容は何ですか?それでも同じことです。
そして、スクリプトを最初に開く必要なしにすぐに変更できます。
あなたが尋ねたことを正確に行うには、最初にrunner
というファイルを作成してシェルスクリプトにします。 bashで
#!/bin/bash
for arg in [email protected]
do
$arg &
done
[email protected]
スクリプトに渡されるすべての引数の配列で、これはありませんのみ2つのプログラムを起動するに制限するスクリプトを作成します。 このスクリプトを使用して起動するプログラムは、$PATH
にあるか、./program1
というスクリプトに渡す必要があります。例えばprogram1
で
./runner ./program1 program2
$PATH
ではないが、program2
です。