Existe uma maneira de executar um script bash desacompanhado?

2

Eu ainda sou muito novo no mundo do Linux, agora que fiz a troca por causa de minhas experiências com o Windows 10. Eu dei uma chance, mas não é tão bom quanto eu esperava devido a todo o hype em torno dele. De qualquer forma, eu avaliaria meu conhecimento de Linux até o momento. Eu diria que eu sou um pouco além do KUbuntu como um "n00b" e "iniciante". Não tenho certeza se isso pode ser feito, então espero que alguém me avise se isso é possível ou não.

Eu já aprendi o truque apt-get install -y Foo para instalar o que eu estou tentando fazer sem que o terminal me peça para acessar Y ou N .

Então aqui está a minha pergunta. Eu encontrei muitos scripts de "pós-instalação" para todos os gostos do Ubuntu, assim como muitos para outras distros como Elementary, Manjaro, SuSe e assim por diante. Eles foram feitos para que outros possam instalar muitos softwares, ajustes, temas, etc.

É possível dizer ao meu novo sistema Kubuntu 15.04 para sempre atingir Y quando solicitado a aceitar os novos recursos? Existe uma maneira de fazer isso com um script bash? Ou eu tenho que assisti-lo como um falcão para que ele não continue abortando se eu estou atrasado para chegar ao computador para atingir Y?

    
por Ev- 25.09.2015 / 09:04

3 respostas

2

Sim, existe. Há o comando yes cujo trabalho é precisamente isso. Ele repetidamente emitirá uma determinada string ( y é o padrão). Então, se o sciprt foo.sh espera que você pressione y para confirmar uma ação, você pode executá-lo desta maneira:

yes | foo.sh

No entanto, isso não é uma boa ideia. Primeiro de tudo, na maioria dos casos, não há tempo limite. Você não precisa correr para o computador, ele vai esperar por você. Os computadores tendem a ser animais bastante pacientes. Mais importante, você raramente quer aceitar cegamente tudo o que lhe é pedido. É uma boa ideia fazer a sua própria opinião e é por isso que você está sendo perguntado.

Em qualquer caso, a escolha é sua. Se tiver certeza de que deseja responder cegamente "sim" a todas as perguntas, use apenas yes .

    
por terdon 25.09.2015 / 11:12
0

Você pode criar uma cópia do script e executar sed -i 's|apt-get install|apt-get -y --force-yes install|g' /path/to/script , o que substituirá todas as ocorrências de apt-get install por uma versão respondida automaticamente. Tenha cuidado com o --force-yes , no entanto.

Além disso, isso provavelmente não resolverá seu problema, porque na maioria dos scripts, as perguntas de Y / N não são "pedidas" pelo apt, mas "pelo próprio script", geralmente com o comando read .

Você pode tentar executar /path/to/script -h ou /path/to/script --help para ver se há uma opção de aceitação automática.

Outro método seria passar o "Y" via pipe, ou seja, for i in {1..10}; do echo Y; done |/path/to/script , mas esse é um método pouco limpo.

    
por David 25.09.2015 / 09:16
0
por user.dz 25.09.2015 / 10:08