我遇到了一个shell脚本,其中定义了下面提到的脚本 -
test -f .rerunning
touch .rerunning
请让我知道上述unix命令的用途以及它们之间的区别?
我遇到了一个shell脚本,其中定义了下面提到的脚本 -
test -f .rerunning
touch .rerunning
请让我知道上述unix命令的用途以及它们之间的区别?
基本上,test
是另一种调用if
语句的方式。
因此,
test -f .rerunning
检查文件是否.rerunning
存在。
线
touch .rerunning
更新文件的最后编辑时间.rerunning
。如果它不存在,则创建它。
正如Sylvain Defresne和Shawn Chin所指出的那样,一行接一行没有任何内容&&
或没有任何||
意义。
从您的评论更新:
是的|| 在那儿。
test -f .rerunning || { touch .rerunning #Some code here } echo Another instance is currently running. Aborting. exit 1
你是说有 .rerunning 文件吗?
因为这是一个条件
A || B
如果A为真->不必分析B。如果A为假->检查B。
因此,它测试文件是否.rerunning
存在。如果是这样,则什么都不做。如果没有,它会触摸它,执行一些代码。
综上所述,主要思路一定是要有一个锁文件,避免一个程序多次执行。