Como executar automaticamente um comando sempre que um determinado comando termina?

Como executar automaticamente um comando sempre que um determinado comando termina?

Exemplo: Assim que o add-apt-repositoryprocesso terminar, execute imediatamente apt-get update- sem precisar inserir o comando manualmente.

Existe uma maneira de fazer isso? É possível definir tal combinação sem o uso da sudosenha? (embora eu não me importe de qualquer maneira)

Estou perguntando o seguinte:Como posso vincular dois comandos, de modo que sempre que eu executar um comando específico, elesempreexecuta o comando vinculado depois dele?

Responder1

Como normalmente,

sudo bash -c "command1; command2"

Se quiser executar o comando2 somente após a conclusão bem-sucedida do comando1, você poderá usar as &&em vez de ;.

sudo bash -c "command1 && command2"

Usarei o seguinte comando para seu exemplo.

sudo bash -c "add-apt-repository <repo> && apt-get update"

Responder2

Existem vários problemas relacionados a isso com um alias ou uma função bash simples, mas você pode escrever um pequeno wrapper para um comando e inseri-lo no /usr/local/binque tem prioridade em seu caminho.

Isto é umpequeno truque para criar um script e chmod ao mesmo tempo.
Ele despejará um script wrapper executável no formato /usr/local/bin/add-apt-repository.

sudo install -b -m 755 /dev/stdin /usr/local/bin/add-apt-repository << 'EOF'
#!/bin/sh
/usr/bin/add-apt-repository "$@"
apt-get update
EOF 

Para reverter isso, basta excluir /usr/local/bin/add-apt-repository.

Se você quiser fazer algo mais frutífero (como vincular apt-get installe apt-get updatesempre atualizar antes de instalar), só precisamos expandir o script para ver os argumentos.

sudo install -b -m 755 /dev/stdin /usr/local/bin/apt-get << 'EOF'
#!/bin/sh
if [ "$1" = "install" ] ; then
    /usr/bin/apt-get update
fi
/usr/bin/apt-get "$@"
EOF 

Embora considere que isso executará uma atualização antestodo apt-get installchamar. Isso pode parecer útil, mas pode ser muito tedioso na prática.

Responder3

Para executar certos comandos em uma sequência específica, é usado script de shell. Tudo que você precisa fazer é - Abra o terminal pressionando Ctrl+ Alt+ T E siga os passos -
1. Digite gedit filename.sh
2. Após inserir este comando, um editor de texto será aberto, onde você poderá digitar os comandos necessários, um em cada linha. Por exemplo,
sudo add-apt-repository
apt-get update
3. Depois de digitar todos os comandos, salve e saia usando a GUI ou pressione Ctrl+ Se Ctrl+ Q.
4. Agora você retornará ao terminal. Execute sh filename.shno terminal e seus comandos serão executados, desde que não haja erros em seus comandos.
Além disso, se você fizer login a partir de uma conta de superusuário (root), não precisará digitar sudoseu comando.

Responder4

A maneira mais fácil de fazer isso é executar:

sudo add-apt-repository <ppa_name> && sudo apt-get update

Se o primeiro comando for concluído com sucesso, o segundo será executado.

informação relacionada