スクリプトが終了するのを待つ方法 - csh?

スクリプトが終了するのを待つ方法 - csh?

大きなファイルを小さなファイルに分割するスクリプトを実行します。それから私は尋ねた。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スクリプトをリファクタリングする場合にのみ機能します。

おすすめ記事