我有以下ksh脚本:
sqlplus usr1/pw1@DB1 @$DIR/a.sql $1 &
sqlplus usr2/pw2@DB2 @$DIR/b.sql $1 &
wait
echo "Done!"
其中$ DIR是一个带有绝对路径的变量,其中a.sql和b.sql是。
有一段时间,我每天都在运行这个脚本,它运行正常。 意图是两个SQL * Plus会话都转到后台 并行执行,当他们完成时我可以继续 以下步骤。
由于它不再是测试版本,我在crontab上安排了它 每天执行。我现在遇到的问题是它不会停下来 “等待”并让sqlplus会话完成,但它直接输出 “完成!”。在真正的应用程序中,“回声完成!”实际上是一个电话 另一个程序对a.sql和b.sql的输出进行一些处理。 但是因为它不等待两个sql脚本实际完成, 处理无法完成。
当我自己运行时,它的工作绝对完美,我从中做到了 本地目录或从根目录(如crontab所做)。但 当它由crontab自动执行时,我不会停下来 等等并拧紧整个事情。
关于可能发生的事情的任何想法?谢谢!