Automatisches Hinzufügen von Bits vor und nach einem Bash-Befehl

Automatisches Hinzufügen von Bits vor und nach einem Bash-Befehl

Ist es möglich, es einzugeben foound von Bash automatisch in konvertieren zu lassen time foo && notify-send "PLAYBOOK COMPLETE"?

Ich möchte insbesondere, dass dies nur auf ansible-playbookBefehle angewendet wird (für diejenigen, die mit Ansible nicht vertraut sind: Es können beliebig viele Optionen, Argumente usw. folgen, ansible-playbooksodass ein einfacher Alias ​​wahrscheinlich nicht ausreicht), sodass ich benachrichtigt werde, wenn ein langes Playbook beendet ist.

Ein Befehl vor jedem Bash-Befehlsah vielversprechend aus, hat bei mir aber leider nicht richtig funktioniert.

Antwort1

Mit einer Shell-Funktion:

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

oder

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

Die letztere Form ist die POSIX-Methode zum Definieren einer Funktion, aber ansible-playbookein Alias ​​(falls vorhanden) kann stören. Die frühere Form ist immun, aber nicht portierbar. Wenn kein Alias ​​vorhanden ist und Sie Bash verwenden, funktioniert jede Form.

Oder Sie können ein Wrapper-Skript schreiben, das ähnlich funktioniert. Wenn Sie es benennen, ansible-playbookstellen Sie sicher, dass es dasreal ansible-playbook, nicht sich selbst. In der obigen Funktion verhindert das Wort, dass commanddie Funktion selbst in einer Endlosschleife aufgerufen wird.

verwandte Informationen