以下のスクリプトが定義されているシェルスクリプトに出くわしました-
test -f .rerunning
touch .rerunning
上記の UNIX コマンドの目的とそれらの違いを教えてください。
以下のスクリプトが定義されているシェルスクリプトに出くわしました-
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 が true の場合 -> B を分析する必要はありません。A が false の場合 -> B をチェックします。
したがって、ファイル.rerunning
が存在するかどうかをテストします。その場合、何も行われません。そうでない場合は、それに触れて、何らかのコードを実行します。
要約すると、主なアイデアは、プログラムの複数回の実行を回避するためにロックファイルを作成することです。