編集 - 明確にするために、4 月 7 日に質問を少し修正しました。
現在の動作環境はOSX 10.4.11です。
特定のフレーズのログ ファイルをスキャンしたいと考えています。スクリプトの開始時にログ ファイルを空にすることはできません。したがって、スクリプトはログへの変更のみをスキャンする必要があります。
私の現在のスクリプト:
#!/bin/sh
tail -f log.txt | while read line
do
if echo $line | grep -q 'LOL CANDY'; then
echo 'LOL MATCH FOUND'
exit 0
fi
done
「LOL CANDY」を見つけた直後に「LOL MATCH FOUND」という点では適切に動作しますが、「LOL CANDY」の後にログに別の追加が行われるまで、実際にはスクリプトを終了しません。すぐに辞める必要があります。特に関係があるかどうかはわかりませんが、「tail -f」が永遠に開いたままになるという問題があります。誰かが tail -f を使用せずに動作する例を教えてもらえますか?
OSXはsh、bash、およびその他のシェルを処理できるため、必要に応じてbashスクリプトを提供してください。