ファイルができるまで待つshell

bash開発関連
bash

shellでファイルが出力されるまで待ってから次のコマンドを実行するサンプルです。
以下はnuxt/nuxt.sockファイルができるまで待ち、その後パーミッションを変更します。

#!/bin/sh
FILE="nuxt/nuxt.sock"

while [ ! -e $FILE ]
do
  sleep 1
done

chmod 666 $FILE

繰り返し

一般的な書式

while [ 条件式 ]
do
  繰り返したい処理
done

sleepコマンド

一定期間待ちたい場合に使います。

sleep 秒数
sleep [オプション]

オプションには以下の指定ができます。
s:秒
m:分
h:時間
d:日

ファイルの存在チェック

「-e」を使うことでファイルの存在チェックが可能。以下の場合はファイルが存在する限り処理を繰り返す。

while [ -e $FILE ]
do
  sleep 1
done

「! -e」とするとファイルが存在しない限り繰り返しとなります。

ディレクトリの存在チェック

「-d」を使用します。

©2018 LLC Shimer-System.
image/svg+xml