一次运行两次脚本

时间:2018-11-22 22:11:01

标签: linux bash

我正在编写一些简单的脚本来提高工作团队的效率。 该脚本只是搜索用户作为参数提供的文件。

./ check_file test_file.xml

我只使用了atoils命令,没有日志或临时文件。

我的问题是:我应该放置一个.lock文件以确保脚本一次只运行一次,还是可以避免使用此控件?

通常,我会创建一个锁定文件,因为我的脚本会写入临时文件,如果两个用户同时运行脚本,则会爆炸。

谢谢!

1 个答案:

答案 0 :(得分:0)

通常来说,不会。我建议尽可能避免使用临时文件,而最好使用管道。但是,我怀疑总是有可能避免使用临时文件,因此在必须使用临时文件名(当前进程ID或PID)时使用$$。因此,如果您使用/tmp/check_file.tmp作为临时文件名,而使用/tmp/check_file.$$.tmp-那么可以同时运行两个进程,每个进程都有自己的PID,并且不会重叠。

稍微高级一点的是也将${TMP:-/tmp}用作临时目录,而不仅仅是/tmp-这样,用户可以为每次运行指定一个不同的目录,从而避免任何重叠。