我的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的新手。
答案 0 :(得分:3)
while sleep 1; do kill -0 $PIDD 2>/dev/null || break; done
或
while kill -0 $PIDD 2>/dev/null; do sleep 1; done