我是Bash腳本編程的新手,但我是一名快速學習者。通常。我試圖編寫一個腳本來終止並重新啓動Hudson的一個實例 - 它需要重新啓動以獲取環境變量中的更改。我有什麼至今:Bash腳本殺死並重新啓動Hudson
#!/bin/bash
h=`pgrep -f hudson`
if test "$h" != ""; then
kill $h
while [ "$h" != "" ]; do
sleep 1
unset h
h=`pgrep -f hudson`
done
fi
java -jar ~/hudson/hudson.war &
腳本正常地判定運行哈德森實例的PID,並殺死它。但是,它只是在「殺」行後等待,不會繼續。如果我點擊一個鍵,它會完成查殺過程並退出腳本,甚至不會進入while循環。很明顯,我錯過了應該如何殺死這個過程。這並不是說哈德遜過程被掛起,也沒有對「殺」作出反應;它會正常退出,直到我介入。
我也確定這可能會更有效,但現在我只想了解我哪裏出錯了。
在此先感謝。
感謝bash提示和明顯更好的重構。 – AndrewRich 2010-08-18 19:09:07