Scripting Oracle SOA Suite 11g installation

Installing the Oracle SOA Suite 11g using the silent installer in a script can be very frustrating because the Universal installer actually spawns a new process during execution. So running the following in a script will give you erroneous behavior.

$ ./runInstaller -silent -response $RESPONSE_FILE -invPtrLoc $ORACLE_HOME/oraInst.loc -jreLoc $JAVA_HOME &
The problem is that the script continues its execution path as soon as the installer spawns of its child process. Looking over the documentation didn't reveal much, but I did eventually find a solution, which of course is fairly obvious. Just append the -waitforcompletion flag to the execution line like this.

$ ./runInstaller -silent -response $RESPONSE_FILE -invPtrLoc $ORACLE_HOME/oraInst.loc -jreLoc $JAVA_HOME -waitforcompletion &
This will ensure that the internal child process completes before the initial process is considered done.