大きなファイルを小さなファイルに分割するスクリプトを実行します。それから私は尋ねた。if (-f *filename) then ....
場合によっては、スクリプトが完了していないためif
実行できないことがあります。試しましたが、sleep
問題は解決しません。
私のスクリプト: Split -l $number_lines - file2 < file1 >& /dev/null &
「待つ」はどのように使うべきですか?
ありがとうございます!
答え1
問題を完全に解決する方法はいくつかあります。
私が知る限り、あなたはCシェルを使用しています。 (私はBashを使用していますが、私が対話するいくつかの環境ではTCSHを使用しています。)
要件を満たす1つの方法は、体系的なプロセス指向のロックです。
プロセスのロック方法は次のとおりです。
#!/bin/csh
set process_id = $1
set sub_sequent_cmd = $2
set ANTECEDENT_PROC = XXYYZZ
#
while (pidof $ANTECEDENT_PROC)
do
sleep 10
if (pidof $ANTECEDENT_PROC)
then
sleep .1
else
./sub_sequent_command
break
fi
end
解決の前提が重要です。外部スクリプトを使用してプロセスを監視し、前のプロセスが終了したら後続のスクリプトを実行します。
これは、エクスポートされたcshセッションで呼び出されるようにcshスクリプトをリファクタリングする場合にのみ機能します。