3

如何设置此 KornShell (ksh) 脚本以在 tst1.sql 完成后并行运行 SQL 脚本 2,3,然后在 2,3 完成后运行 tst4.sql?这可能吗?

#/usr/bin/ksh
#SET ENVIRONMENT ORACLE

sqlplus user1/pw @/home/scripts/tst1.sql
sqlplus user1/pw @/home/scripts/tst2.sql
sqlplus user1/pw @/home/scripts/tst3.sql
sqlplus user1/pw @/home/scripts/tst4.sql
exit 0
4

1 回答 1

3

第一个命令应该同步运行......

如果您将最后两个命令作为后台进程启动(在命令末尾添加 &),它们将并行运行。

您是否希望脚本在离开之前等待最后两个过程完成?

像这样的东西应该工作:

  sqlplus user1/pw @/home/scripts/tst1.sql
  sqlplus user1/pw @/home/scripts/tst2.sql &
  pid2=$!
  sqlplus user1/pw @/home/scripts/tst3.sql &
  pid3=$!
  # pseudo-code:
  # while (`ps -p"$pid2,$pid3" | wc -l` != "1");
  sqlplus user1/pw @/home/scripts/tst4.sql
于 2013-08-13T04:37:36.483 回答