1

サーバー起動スクリプトがあります

startserver.sh

startserver.sh & スクリプトは、実際に実行状態で実行できるようになるまで、しばらくの間スクリプトを実行する必要があるバックグラウンドタスクとして実行されます。実行状態は、準備ができたときにログファイルに書き込むserver.logことができます。

したがって、bash cmdを実行して、サーバーが実際にいつ実行されるかを知る必要があります。そうでない場合は、実行状態がserver.logに表示されるまで待つ必要があります。

これをbashで達成できますか?

4

1 に答える 1

0

このようなことを試してください

mkfifo my_fifo
tail -f server.log >my_fifo &
tail_pid=$!
perl -ne '/pattern/&&exit' <my_fifo
kill $tail_pid
rm my_fifo

編集:perlコマンドは次のように置き換えることができます

grep -l 'pattern' <my_fifo >/dev/null

または、grepがこのオプションをサポートしている場合

grep -q 'pattern' <my_fifo
于 2012-07-11T08:01:55.777 に答える