Adicionar bits automaticamente antes e depois de um comando bash

Adicionar bits automaticamente antes e depois de um comando bash

É possível entrar fooe fazer com que o bash o converta automaticamente para time foo && notify-send "PLAYBOOK COMPLETE"?

Eu gostaria especificamente que isso se aplicasse apenas a ansible-playbookcomandos (para aqueles que não estão familiarizados com o Ansible, qualquer número de opções, argumentos etc. pode seguir, ansible-playbookentão um simples alias provavelmente não resolverá o problema) para que eu seja notificado quando um longo manual terminou.

Um comando antes de cada comando bashparecia promissor, mas infelizmente não funcionou corretamente para mim.

Responder1

Com uma função shell:

function ansible-playbook { time command ansible-playbook "$@" && notify-send "PLAYBOOK COMPLETE"; }

ou

ansible-playbook () { time command ansible-playbook "$@" && notify-send "PLAYBOOK COMPLETE"; }

A última forma é a maneira POSIX de definir uma função, mas ansible-playbooko alias (se houver) pode interferir. A primeira forma é imune, mas não portátil. Se não houver nenhum alias e você estiver usando o Bash, qualquer um dos formulários funcionará.

Ou você pode escrever um script wrapper que funcione de maneira semelhante. Se você nomeá-lo ansible-playbook, certifique-se de que ele chame oreal ansible-playbook, não em si. Na função acima, a palavra commandevita chamar a própria função em um loop infinito.

informação relacionada