¿Cómo hacer que un script "espere" a que finalice una operación?

¿Cómo hacer que un script "espere" a que finalice una operación?

Tengo dos scripts, o tal vez sea mejor llamar a uno un contenedor para el otro.

Aquí viene el envoltorio:

#!/usr/bin/expect

set timeout 20

spawn "./installOracleDatabase.sh"

expect "replace Disk1/upgrade/gen_inst.sql?" { send "N\r" }
expect "Specify the HTTP port that will be used for Oracle Application Express" { send "\r" }
expect "Specify a port that will be used for the database listener" { send "\r" }
expect "initial configuration:" { send "root\r" }
expect "Confirm the password:" { send "root\r" }
expect "Do you want Oracle Database 11g Express Edition to be started on boot" { send "y\r" }

Y aquí está el guión principal:

#!/bin/bash
#install required libraries and programs
sudo yum -y install libaio bc flex unzip
#unzipping the Oracle package
unzip -q oracle-xe-11.2.0-1.0.x86_64.rpm.zip
cd Disk1
sudo rpm -ivh oracle-xe-11.2.0-1.0.x86_64.rpm
sudo /etc/init.d/oracle-xe configure

cat " . /u01/app/oracle/product/11.2.0/xe/bin/oracle_env.sh" >> $HOME/.bashrc

El problema con el segundo script es que después del último paso en sudo /etc/init.d/oracle-xe configure, cuando el script de configuración pregunta "¿Desea que Oracle (...) se inicie en el arranque", justo después de ese paso, durante la instalación normal, Oracle es haciendo algunos otros pasos:

Do you want Oracle Database 11g Express Edition to be started on boot (y/n) [y]:y

Starting Oracle Net Listener...Done
Configuring database...Done
Starting Oracle Database 11g Express Edition instance...Done
Installation completed successfully.

Este paso está tomando algún tiempo. Pero mi guión sale justo después de responder ya la última pregunta...

¿Cómo puedo forzar al script a esperar a que finalice toda la configuración?

Respuesta1

Para hacer que el expectscript espere hasta el último paso de Oracle, puede intentar agregar la siguiente línea al final del expectscript.

expect "Starting Oracle Net Listener...Done" { send "\r" }
expect "Configuring database...Done" { send "\r" }
expect "Starting Oracle Database 11g Express Edition instance...Done" { send "\r" }
expect "Installation completed successfully." { send "\r" }
expect eof

información relacionada