1

以下のスクリプトが定義されているシェルスクリプトに出くわしました-

test -f .rerunning
touch .rerunning

上記の UNIX コマンドの目的とそれらの違いを教えてください。

4

1 に答える 1

1

基本的に、ステートメントtestを呼び出す別の方法です。if

したがって、

test -f .rerunning

ファイル.rerunningが存在するかどうかを確認します。

この線

touch .rerunning

ファイルの最終編集時刻を更新します.rerunning。存在しない場合は、作成されます。

Sylvain DefresneShawn 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が存在するかどうかをテストします。その場合、何も行われません。そうでない場合は、それに触れて、何らかのコードを実行します。

要約すると、主なアイデアは、プログラムの複数回の実行を回避するためにロックファイルを作成することです。

于 2013-05-29T08:33:34.793 に答える