Trabajo con instancias de Amazon Linux y tengo un par de scripts para completar datos e instalar todos los programas con los que trabajo, pero un par de programas preguntan:
Do you want to continue [Y/n]?
y pausa la instalación. Quiero contestar automáticamente "Y" en todos los casos, ahora estoy seguro de cómo hacerlo.
--noprompt
o--noconfirm
que puede usar.Respuestas:
El comando 'sí' hará eco de 'y' (o lo que sea que le pida) indefinidamente. Úselo como:
o, si se requiere una 'Y' mayúscula:
fuente
yes
ya que se sabe que maximiza la CPU. stackoverflow.com/a/18164007/720665-y
buscar en Google scripts bash fue DIFÍCIL./dev/null
o STDOUT. Conectado a un comando, solo escribirá una línea en el conducto cada vez que el comando de recepción lea una, y esperará en caso contrario.echo y | command
Deberia trabajar.Además, algunos instaladores tienen un indicador de "auto-sí". Es
-y
paraapt-get
Ubuntu.fuente
-f
(--force
) que funciona como "auto-sí" para los comandos que eliminan algoEs posible que no tenga la capacidad de instalar Expect en el servidor de destino. Este suele ser el caso cuando uno escribe, digamos, un trabajo de Jenkins.
Si es así, consideraría algo como la respuesta a lo siguiente en askubuntu.com:
/ubuntu/338857/automatically-enter-input-in-command-line
Tenga en cuenta que, en algunos casos raros, el comando no requiere que el usuario presione Intro después del carácter. en ese caso, deje las nuevas líneas fuera:
En aras de la integridad, también puede utilizar un documento aquí:
O si su shell lo admite, una cadena aquí:
O puede crear un archivo con una entrada por línea:
Nuevamente, todo el crédito por esta respuesta es para el autor de la respuesta en askubuntu.com , lesmana.
fuente
Aunque esto puede ser más complicado / pesado de lo que desea, una forma muy flexible de hacerlo es usar algo como Expect (o uno de los derivados en otro lenguaje de programación).
Expect es un lenguaje diseñado específicamente para controlar aplicaciones basadas en texto, que es exactamente lo que busca hacer. Si termina necesitando hacer algo más complicado (como con la lógica para decidir qué hacer / responder a continuación), Expect es el camino a seguir.
fuente
Solo necesitas poner
-y
con el comando de instalación.Por ejemplo:
yum install <package_to_install> -y
fuente
Si solo desea aceptar los valores predeterminados, puede usar:
fuente
bash
,sh
y en la mayoría de los sistemas, que conozco, es necesario que, deecho
lo\n
contrario, no se canalizaría al siguiente comando.