先说解决思想:
使用文件锁
防止shell 重复执行
- 脚本执行业务代码中 文件不存在 其他脚本也不会执行
- 当业务逻辑执行完毕 放开文件锁,使得下一个脚本程序可以检测到文件
- 进而 文件上锁 并 执行业务逻辑
示例代码:
#! /bin/bash
while [ true ]
do
if [ ! -f './action.md' ]
then
echo '文件不存在'
else
break
fi
sleep 1
done
#移除文件 继续执行
rm -f './action.md'
for((i=1;i<=5;i++))
do
echo "这是第 $i 次调用"
sleep 1
done
#创建文件
touch './action.md'
exit 0