linux - servicio - manual de programacion android pdf
¿Cómo escribo una respuesta "sí" para instalar programas? (4)
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 los programas preguntan:
Do you want to continue [Y/n]?
y pausa la instalación. Quiero responder automáticamente "S" en todos los casos, ahora estoy seguro de cómo hacerlo.
Aunque esto puede ser más complicado / más pesado de lo que desea, una forma muy flexible de hacerlo es usar algo como Esperar (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 estás buscando hacer. Si termina necesitando hacer algo más complicado (como con la lógica para decidir realmente qué hacer / responder a continuación), esperar es el camino a seguir.
El comando ''sí'' hará eco ''y'' (o lo que sea que le pidas) indefinidamente. Úselo como:
yes | command-that-asks-for-input
o, si se requiere una ''Y'' mayúscula:
yes Y | command-that-asks-for-input
echo y | command
echo y | command
debería funcionar
Además, algunos instaladores tienen un indicador de "auto-sí". Es -y
para apt-get
en Ubuntu.
//, es posible que no tenga la capacidad de instalar Expect en el servidor de destino. Este es a menudo el caso cuando uno escribe, digamos, un trabajo de Jenkins.
Si es así, consideraría algo así como la respuesta a lo siguiente en askubuntu.com:
https://askubuntu.com/questions/338857/automatically-enter-input-in-command-line
printf ''y/nyes/nno/nmaybe/n'' | ./script_that_needs_user_input
Tenga en cuenta que en algunos casos excepcionales, el comando no requiere que el usuario presione enter después del carácter. en ese caso deje las nuevas líneas:
printf ''yyy'' | ./script_that_needs_user_input
Para completar, también puede usar un documento aquí:
./script_that_needs_user_input << EOF
y
y
y
EOF
O si su shell lo admite una cadena aquí:
./script <<< "y
y
y
"
O puede crear un archivo con una entrada por línea:
./script < inputfile
De nuevo, todo el crédito por esta respuesta va al autor de la respuesta en askubuntu.com, @lesmana.