Como fazer um script “esperar” para uma operação terminar?

3

Eu tenho dois scripts muito simples, ou talvez melhor chamar um um wrapper para o outro.

Aí vem o wrapper:

#!/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" }

E aqui está o script 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

O problema com o segundo script é que, após a última etapa em sudo /etc/init.d/oracle-xe configure , quando o script de configuração está perguntando "Você deseja que o Oracle (...) seja iniciado na inicialização", logo após essa etapa, durante a instalação normal, o Oracle está fazendo algumas outras etapas:

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 passo está demorando algum tempo. Mas meu script está saindo logo depois de responder y à última pergunta ...

Como posso forçar o script a aguardar a conclusão de toda a configuração?

    
por Zibi Smough 24.05.2017 / 15:12

1 resposta

0

Para fazer com que o script expect aguarde até a última etapa do Oracle, você pode tentar adicionar a seguinte linha ao final do script expect

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
    
por 24.05.2017 / 15:18