我有一個shell腳本,我想在後臺運行我的可執行文件「server」的兩個實例。但是,當我運行腳本時,出現錯誤「read:missing arguments」。當我刪除「&」以在後臺運行時,不會發生此問題,但會產生不良行爲。shell腳本打印出「讀取:缺少參數」
服務器可執行文件後面跟着成對的地址和端口,但我刪除了任何代碼檢查正確數量的參數。錯誤在哪裏被拋出,我怎樣才能使這個腳本工作?
#Location of executable.
SERVER=server
SERVER_NAME=`echo $SERVER | sed 's#.*/\(.*\)#\1#g'`
$SERVER localhost 4111 localhost 4222 &
$SERVER localhost 4222 localhost 4111 &
echo "Press ENTER to quit"
read
pkill $SERVER_NAME
有沒有ne編輯使用pkill。如果你的系統支持它,只需使用'kill 0'來殺死進程組的所有成員。否則,請執行'$ SERVER ...&p1 = $ !; $ SERVER ...&p2 = $ !; ......殺死$ p1 $ p2;'(也就是跟蹤你的孩子,這樣你就可以乾淨地殺了他們。) –
這個腳本是我們的教授給我們測試我們的服務器代碼的。 pkill似乎工作正常,但我的問題是爲什麼我可以運行服務器完全相同的方式(與&最後),但是當它在腳本中,它不會工作,並告訴我我失蹤參數呢? – theeggman85
嘗試@桑普森的變化。我敢打賭它會起作用。祝你好運。 – shellter