如何等待脚本结束 - csh?

如何等待脚本结束 - csh?

我执行一个将大文件拆分为小文件的脚本。紧接着我问if (-f *filename) then ....

有时脚本未完成,因此if无法运行。我尝试过sleep,但这并不能解决问题。

我的脚本: split -l $number_lines - file2 < file1 >& /dev/null &

我应该如何使用“等待”?

谢谢你!

答案1

有几种方法可以彻底解决您的问题。

据我所知,您正在使用 C-Shell(我使用 Bash,但我与之交互的某些环境使用 TCSH。)。

满足您的要求的一种方法是系统性的面向过程的锁定。

进程锁定方法看起来最像这样:

#!/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 脚本时,这才有效。

相关内容