Trabalho com instâncias do Amazon Linux e tenho alguns scripts para preencher os dados e instalar todos os programas com os quais trabalho, mas alguns dos programas pedem:
Do you want to continue [Y/n]?
e pause a instalação. Desejo responder automaticamente "Y" em todos os casos, mas agora tenho certeza de como fazer isso.
--noprompt
ou que--noconfirm
você pode usar.Respostas:
O comando 'sim' irá ecoar 'y' (ou o que você pedir) indefinidamente. Use-o como:
ou, se um 'Y' maiúsculo for necessário:
fonte
yes
como é conhecido para maximizar a CPU. stackoverflow.com/a/18164007/720665-y
por scripts bash foi DIFÍCIL./dev/null
ou STDOUT. Canalizado para um comando, ele gravará apenas uma linha no canal cada vez que o comando de recebimento ler uma e, caso contrário, esperará.echo y | command
Deveria trabalhar.Além disso, alguns instaladores têm um sinalizador "auto-sim". É
-y
paraapt-get
no Ubuntu.fonte
-f
(--force
) que funciona como "auto-sim" para comandos que removem algoVocê pode não conseguir instalar o Expect no servidor de destino. Este é frequentemente o caso quando se escreve, digamos, um trabalho do Jenkins.
Se sim, eu consideraria algo como a resposta ao seguinte em askubuntu.com:
/ubuntu/338857/automatically-enter-input-in-command-line
Observe que, em alguns casos raros, o comando não exige que o usuário pressione Enter após o caractere. nesse caso, deixe as novas linhas de fora:
Para fins de integridade, você também pode usar um documento aqui:
Ou se seu shell suporta uma string here:
Ou você pode criar um arquivo com uma entrada por linha:
Novamente, todo o crédito por esta resposta vai para o autor da resposta em askubuntu.com , lesmana.
fonte
Embora isso possa ser mais complicado / pesado do que você deseja, uma maneira muito flexível de fazer isso é usando algo como Expect (ou um dos derivados em outra linguagem de programação).
Expect é uma linguagem projetada especificamente para controlar aplicativos baseados em texto, que é exatamente o que você está procurando fazer. Se você acabar precisando fazer algo mais complicado (como com lógica para realmente decidir o que fazer / responder a seguir), a expectativa é o caminho a percorrer.
fonte
Você só precisa colocar
-y
com o comando install.Por exemplo:
yum install <package_to_install> -y
fonte
Se você deseja apenas aceitar os padrões, pode usar:
fonte
bash
,sh
e na maioria dos sistemas, que eu conheço, você precisaecho
do\n
caso contrário, não seria canalizado para o próximo comando.