![如何阻止同一目录中同一脚本的双重执行](https://linux22.com/image/205285/%E5%A6%82%E4%BD%95%E9%98%BB%E6%AD%A2%E5%90%8C%E4%B8%80%E7%9B%AE%E5%BD%95%E4%B8%AD%E5%90%8C%E4%B8%80%E8%84%9A%E6%9C%AC%E7%9A%84%E5%8F%8C%E9%87%8D%E6%89%A7%E8%A1%8C.png)
我创建了一个 .sh 可执行文件,该文件在同一脚本使用的工作目录/文件夹中生成多个文件。如果它在同一个文件夹中运行两次,那就会很混乱,因为脚本内的循环将使用新文件和以前创建的文件。是否有任何选项可以阻止同一文件夹中同一脚本的双重执行?然后echo“这里已经执行了这个操作,更改文件夹”
答案1
脚本启动后 - 检查它是否有文件“.i_am_running”。如果文件不存在 - 创建它,执行作业,删除文件。如果确实存在 - 这是该进程的第二个实例,请立即退出。
答案2
输出文件名不同,但具有相同的扩展名,因为我的循环类似于“for file in *.bam”,那么所有 bam 文件都会经历一个新循环,旧循环和新循环
老实说,那么您已经确定了您的问题和正确的解决方案(只需将您生成的文件列表存储在变量中,而不是通过*.bam
.
这不是“优雅”的问题,而是“优雅”的问题。你现在正在做的事情是纯粹的错误。