Answers:
线
if [ -z "$BATCHNUM" ]; then
exit 2;
fi
检查是否为空$BATCHNUM
。通过这种方式,$PPID
您可以对父母造成任何伤害(kill $PPID
)。为了谋杀您的祖父母,您需要通过其他方式获取进程ID,例如查看中的数据/proc/$PPID
。
但是,如果您的父母去世,它会向您发送信号(SIGHUP
),因此您必须先捕获它,然后才能杀死任何人:
trap '' SIGHUP
更新:如果您认为必须杀死父母,那您做错了。只需返回有意义的退出代码即可。父脚本应检查被调用脚本的返回码并做出相应反应。
要测试是否BATCHNUM
已定义,如果未定义则退出:
if [ -n "${BATCHNUM-a}" ]; then
echo >&2 "Fatal error: BATCHNUM not set"
exit 2
fi
如果您还想拒绝BATCHNUM
空的情况,请使用${BATCHNUM:+a}
代替${BATCHNUM+a}
。有关${VARIABLE+TEXT_IF_NULL}
参数扩展构造的信息,请参见例如bash手册。
不要杀死父进程。您不知道父进程是什么。如果某些脚本调用此脚本需要中止,如果该脚本中止,则需要中止,请检查该脚本的退出状态。例如在脚本2中:
script3 || exit $?
或用于set -e
在任何命令返回失败(非零)状态时中止脚本。