2011-03-26 149 views
1


我的BASH腳本無法正常退出。BASH腳本不能正常退出

#!/bin/bash 
#bootstrapper.sh 
PIDD="$5" 
while sleep 1; do kill -0 $PIDD || break; done 
# Absolute path to this script. /home/user/bin/foo.sh 
SCRIPT=$(readlink -f $0) 
# Absolute path this script is in. /home/user/bin 
SCRIPTPATH=`dirname $SCRIPT` 
POSPAR1="$1" #-l 
POSPAR2="$2" #location 
POSPAR3="$3" #-d 
POSPAR4="$4" #directory 
cp -r -f $SCRIPTPATH/$4/* $2 
rm -r -f $SCRIPTPATH/$4 

行:

while sleep 1; do kill -0 $PIDD || break; done 

應該等到PID(存儲在變量$ PIDD)關閉。它等到它不存在(PID),但是當它最終不存在時,它輸出:kill:4:沒有這樣的過程。腳本的其餘部分按預期工作,但腳本不會終止。我可以使腳本正確終止,而不是沒有這樣的過程輸出?
再次感謝您的幫助 - 我是BASH/Linux的新手。

回答

3
while sleep 1; do kill -0 $PIDD 2>/dev/null || break; done 

while kill -0 $PIDD 2>/dev/null; do sleep 1; done 
+0

非常感謝你,它的工作原理! – JohnP 2011-03-28 00:42:52