Foros del Web » Administración de Sistemas » Unix / Linux »

Enviar valor al prompt desde script Bash

Estas en el tema de Enviar valor al prompt desde script Bash en el foro de Unix / Linux en Foros del Web. Estoy creando un script Bash que, dentro de sus monerías, está el crear un nuevo usuario de PostgreSQL. Resulta que dicho comando pregunta por su ...
  #1 (permalink)  
Antiguo 06/01/2009, 04:56
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 9 meses
Puntos: 102
Enviar valor al prompt desde script Bash

Estoy creando un script Bash que, dentro de sus monerías, está el crear un nuevo usuario de PostgreSQL. Resulta que dicho comando pregunta por su password y posteriormente pide confirmación; ¿cómo podría pasarle esos valores desde el propio script?

Código bash:
Ver original
  1. # Parte de mi script ...
  2.     echo "Creando usuario y base de datos..."
  3.     su postgres -c "createuser -A -D -P -U postgres nuevo_usuario"
  4. # Y continúa

Y en la terminal el script se detiene esperando se metan esos valores manualmente, quisiera poder hacerlo desde el script... es la confirmación lo que me lo complica aún más :-/
Código sh:
Ver original
  1. Creando usuario y base de datos...
  2. Ingrese la contraseña para el nuevo rol:
  3. Y posteriormente me pedirá la confirme:

.... y, al margen, aprovecho para otra cuestión, adelantándome a los sucesos .

Igual necesitaré reiniciar la máquina un par de veces (por paquetes de actualizaciones), entonces lo ideal sería se re-lanzara el script de manera automática y continuar donde se quedó. Creo tener controlado el cómo saber dónde continuar (creando y leyendo archivos) y cómo lanzar una terminar que ejecute el script (gnome-terminal -e ruta/al/script.sh), pero no sé cual será la mejor manera de hacer para que se auto-ejecute al loguearse. Estoy en un Ubuntu 8.04.

Gracias de antemano
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #2 (permalink)  
Antiguo 06/01/2009, 06:19
Avatar de AleSanchez
Colaborador
 
Fecha de Ingreso: septiembre-2004
Ubicación: Buenos Aires, Argentina
Mensajes: 3.692
Antigüedad: 19 años, 7 meses
Puntos: 47
Respuesta: Enviar valor al prompt desde script Bash

De atrás para adelante: No creo que haga falta usar una terminal en modo gráfico para correr los scripts.
Yo los correría desde el /etc/rc.local, para que no sea necesario iniciar sesión en el entorno gráfico ni tener que usar nada de él.

Y para tu script podes usar expect.
Saludos.
__________________
¡Volviendo a la programación!
  #3 (permalink)  
Antiguo 06/01/2009, 11:04
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 9 meses
Puntos: 102
Respuesta: Enviar valor al prompt desde script Bash

Gracias AleSanchez. De atrás para adelante para equilibrar las cosas .

Gracias, busco acerca de expect.

Del script, precisamente lo que quiero es lanzar la aplicación en una terminal en modo gráfico . Año nuevo, máquinas nuevas, de una instalación limpia hay que actualizar e instalar X paquetes necesarios, es lo que hará (hace ) el script, pero dentro de las actualizaciones el SO pide reiniciar (un cambio de Kernel), entonces la idea es reiniciar y al volver a loguearse continuar con el script, con los siguientes pasos ... una ves terminado igual debería eliminarse, no es algo permanente.

Intenté colocando la instrucción en .bashrc, pero no se lanza hasta que lanzo una terminal (una terminal que lanza otra terminal) ... pero igual esto no es algo "impresindible", total, se abre y se teclea manualmente ... es más curiosidad .

Entonces gracias, ya volveré a postear si me topo con algún problema.
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #4 (permalink)  
Antiguo 06/01/2009, 12:27
Avatar de AleSanchez
Colaborador
 
Fecha de Ingreso: septiembre-2004
Ubicación: Buenos Aires, Argentina
Mensajes: 3.692
Antigüedad: 19 años, 7 meses
Puntos: 47
Respuesta: Enviar valor al prompt desde script Bash

Pero salvo que sea necesario para la instalación de lo siguiente al kernel, no es necesario el reinicio antes de eso.
Sigo pensando que no hace falta el uso del entorno gráfico.
Yo lo haría a traves de SSH de foerma remota, jeje.
Saludos.
__________________
¡Volviendo a la programación!
  #5 (permalink)  
Antiguo 06/01/2009, 12:35
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 9 meses
Puntos: 102
Respuesta: Enviar valor al prompt desde script Bash

Pues todo son instalación y actualización de paquetes, algunos compilados sobre "el SO ya actualizado", pero no tendría que afectar ¿verdad? ... tendría que volver a compilar con cada cambio de Kernel, y, hasta ahora. no ha sido necesario .

En realidad el reinicio es solo para no errarle, pero igual y me lo salto como dices.

¿cómo instalar paquetes de manera remota? ... tendría que copiarlos ¿no?.

BTW: Gracias, expect me sirvió ... aunque aún no lo implemento, estoy en eso.
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #6 (permalink)  
Antiguo 06/01/2009, 16:58
Avatar de jotaaigriegao  
Fecha de Ingreso: marzo-2008
Mensajes: 60
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: Enviar valor al prompt desde script Bash

si decides usar expect, prueba con autoexpect. es muy sencillo y útil.
  #7 (permalink)  
Antiguo 07/01/2009, 07:36
Avatar de AleSanchez
Colaborador
 
Fecha de Ingreso: septiembre-2004
Ubicación: Buenos Aires, Argentina
Mensajes: 3.692
Antigüedad: 19 años, 7 meses
Puntos: 47
Respuesta: Enviar valor al prompt desde script Bash

Y si no están en los repositorios, si, tenes que bajarlos, pero lo harías desde el mismo script...
Saludos
__________________
¡Volviendo a la programación!
  #8 (permalink)  
Antiguo 07/01/2009, 11:11
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 9 meses
Puntos: 102
Respuesta: Enviar valor al prompt desde script Bash

... perdón Ale, que no entendí tu último mensaje. ¿Qué estaría en los repositorios?.

jotaaigriegao, gracias por el tip. Por ahora lo tengo resuelto con expect, aunque no he podido resolver algunas pantallas de aceptar licencias y avisos (donde hay que "precionar" aceptar) de algunos paquetes, que entendí con este autoexpect podría resolverlo ... pero por ahora lo dejo así.

Veo esto de expect es muy completo, ya se me están ocurriendo algunos otros usos. Gracias
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #9 (permalink)  
Antiguo 08/01/2009, 11:19
Avatar de AleSanchez
Colaborador
 
Fecha de Ingreso: septiembre-2004
Ubicación: Buenos Aires, Argentina
Mensajes: 3.692
Antigüedad: 19 años, 7 meses
Puntos: 47
Respuesta: Enviar valor al prompt desde script Bash

Decía que quizás, si estas instalando nuevos paquetes que están el los repositorios, los bajás directamente con el instalador. Sino, los bajarías con wget, o algo así.

Un comando que quizás te sirva para contestar "Y" es yes que hace simplemente eso... poner una Y a cada pregunta que aparezca

Saludos.
__________________
¡Volviendo a la programación!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:14.