我想在Linux下學習一點或兩點關於進程通信,所以我寫了2個簡單的C程序,它們相互通信。從Linux下的C程序運行多個C程序
然而,這是一個有點惱人必須手動運行它們每一次,所以我想知道有沒有辦法讓將運行他們兩個程序,是這樣的:
./runner program1 program2
我正在使用最新的Ubuntu和Bash shell。
我想在Linux下學習一點或兩點關於進程通信,所以我寫了2個簡單的C程序,它們相互通信。從Linux下的C程序運行多個C程序
然而,這是一個有點惱人必須手動運行它們每一次,所以我想知道有沒有辦法讓將運行他們兩個程序,是這樣的:
./runner program1 program2
我正在使用最新的Ubuntu和Bash shell。
run.sh腳本
#!/bin/sh
./program1 &
./program2 &
運行命令:
$sh run.sh
只要編寫一個shell腳本來做你想做的事 - 你不需要使用C程序來運行C程序。
這條線將做(Bash中):
program1 & program2 &
如果你想記錄輸出:如果你想運行在兩個單獨的終端命令
program1 >output1.txt & program2 >output.txt &
:
xterm -e program1 & xterm -e program2 &
爲什麼不使用這樣的:
./program1;./program2
或
./program1 &;./program2 &
我不知道爲什麼有人認爲這是沒有用的,但它確實有效。
當然你可以寫一個腳本,但腳本的內容是什麼?仍然是同樣的事情。
您可以立即更改它,無需先打開腳本。
請確實按照您的要求做,首先創建一個名爲runner
的文件,它將成爲shell腳本。
#!/bin/bash
for arg in [email protected]
do
$arg &
done
在bash [email protected]
是傳遞給腳本的所有參數數組,這使得沒有僅限於啓動兩個程序的腳本。 請注意,使用此腳本啓動的任何程序都需要位於$PATH
或作爲./program1
傳遞給腳本。
./runner ./program1 program2
在該示例program1
不在$PATH
但program2
是。