USBドライブがインストールされるまでbashスクリプトを待つにはどうすればよいですか?

USBドライブがインストールされるまでbashスクリプトを待つにはどうすればよいですか?

ペンドライブがCPUで認識されると、実行される行を含むbashスクリプトがありますが、インストールcd /run/media/Username/121C-E137/プロセスが完了した後にのみ実行する必要があります。現在、この行はペンドライブがマウントされる前に実行され、無効なディレクトリエラーを返します。

答え1

簡単な解決策は、スクリプトが定期的にディレクトリを確認し、ディレクトリが存在する場合にのみ続行するようにすることです。

PENDRIVE='/run/media/Username/121C-E137'
while [ ! -d "$PENDRIVE" ]; do
    sleep 10
done

cd $PENDRIVE
...

答え2

以下では、pendriveディレクトリが表示されていることを確認して、インストールされていることを確認します。/proc/mounts

pendrive='/run/media/Username/121C-E137'
while ! grep -q -s "$pendrive" /proc/mounts; do
        sleep 10
done
cd "$pendrive"

~/run/media/Username/121C-E137これが望むものではないかのように一般的ではない可能性を考慮する必要がある場合は、次のように修正できます。

pendrive='/run/media/Username/121C-E137'
while ! grep -s "$pendrive" /proc/mounts | awk '{print $2}' | grep -q -s -x "$pendrive"; do
        sleep 10
done
cd "$pendrive"

関連情報