我遇到过一个shell脚本,其中定义了下面提到的脚本 -
test -f .rerunning
touch .rerunning
请让我知道上面提到的unix命令的用途和它们之间的区别?
答案 0 :(得分:1)
基本上,test
是调用if
语句的另一种方式。
因此,
test -f .rerunning
检查文件.rerunning
是否存在。
该行
touch .rerunning
更新文件.rerunning
的上次编辑时间。如果它不存在,则创建它。
正如Sylvain Defresne和Shawn Chin所示,在没有任何&&
或||
的情况下,一行接一行并不合理。
从your comment更新:
是的||在那儿。
test -f .rerunning || { touch .rerunning #Some code here } echo Another instance is currently running. Aborting. exit 1
你是说有.rerunning文件吗?
因为这是一个条件
A || B
如果是真的 - >不必分析B.如果A假 - >检查B.
因此,它会测试文件.rerunning
是否存在。如果是的话,什么也没做。如果没有,则触摸它,执行某些代码。
总结,主要思想必须是拥有一个锁文件,以避免多次执行程序。