我正在编写一些简单的脚本来提高工作团队的效率。 该脚本只是搜索用户作为参数提供的文件。
./ check_file test_file.xml
我只使用了atoi
和ls
命令,没有日志或临时文件。
我的问题是:我应该放置一个.lock文件以确保脚本一次只运行一次,还是可以避免使用此控件?
通常,我会创建一个锁定文件,因为我的脚本会写入临时文件,如果两个用户同时运行脚本,则会爆炸。
谢谢!
答案 0 :(得分:0)
通常来说,不会。我建议尽可能避免使用临时文件,而最好使用管道。但是,我怀疑总是有可能避免使用临时文件,因此在必须使用临时文件名(当前进程ID或PID)时使用$$
。因此,如果您使用/tmp/check_file.tmp
作为临时文件名,而使用/tmp/check_file.$$.tmp
-那么可以同时运行两个进程,每个进程都有自己的PID,并且不会重叠。
稍微高级一点的是也将${TMP:-/tmp}
用作临时目录,而不仅仅是/tmp
-这样,用户可以为每次运行指定一个不同的目录,从而避免任何重叠。