如何在完成tst1.sql之后设置此KornShell(ksh)脚本以在并行中运行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
答案 0 :(得分: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