我必须创建一个bash脚本来检查执行中是否还有其他相同的脚本。为此,我实施了这个解决方案
scriptToVerify="sl_dynamic_procedure.sh_${1}";
LOCKFILE=${SL_ROOT_FOLDER}/work/$scriptToVerify
if [ -e ${LOCKFILE} ] && kill -0 `cat ${LOCKFILE}`; then
sl_log "---------------------------Warning---------------------------"
sl_log "$scriptToVerify already in execution"
exit
fi
trap "rm -f ${LOCKFILE}; exit" INT TERM EXIT
echo $$ > ${LOCKFILE}
我添加了${1}
,因为我的脚本有一个参数。如果我尝试执行没有参数的脚本(没有${1}
),它可以正常工作。如果我尝试执行多次,带参数的脚本有时会起作用,有时则不起作用。我该如何修复我的代码?