私は実際に、ファイルを監視し、ファイル内の新しい行をそれぞれ実行してからその行を削除する bash スクリプトを探しています。ファイル全体が処理されると、スクリプトは新しい行を待機する必要があります。
答えを探しましたが、ファイルの各行を読むこと以外にはほとんど何も見つかりませんでした。
ところで、このようなタスクでは bash が効率的でしょうか、それともこれを行うには小さな C プログラムを構築する必要がありますか?
答え1
以下は、ファイルから行を削除することを除いて、要求されたすべてのことを実行します。
$ ./script && tail -n0 -f script | while read line; do eval "${line}"; done;
まず、ファイルを実行し、次に tail と eval を悪用すると、必要な動作に簡単に近づけることができます。
答え2
行を削除する必要がない場合は、次の方法も試すことができます。
tail -f filename | parallel eval "{}"