次のようなAIXkshで実行されるスクリプトがあります。
wc dir1/* dir2/* | {awk command to rearrange output} | {grep command to filter more} > dir2/output.txt
この行の前提条件は、dir2/output.txtが存在しないことです。
問題は、dir2 / output.txtが出力に含まれていることです(数百回のうち数回は問題なく発生しています)。dir1とdir2はNFSマウントされています。
それはの実装に関連してwc
いますか?最初のパラメータに長い時間がかかる場合はどうなりますか?私は次のことを試したので、そうではないと思います:
wc `sleep 5` *.txt > out.txt
この場合でも、out.txtはそれ自体をリストしません。
最後の注意として、この例ではワイルドカードが使用されており、実際のスクリプトで使用されています。では、拡張が最初に発生した場合、なぜこの問題が発生するのでしょうか。
dir2 / output.txtは実際にどの時点で作成されますか?