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?