Ist es möglich, es einzugeben foo
und von Bash automatisch in konvertieren zu lassen time foo && notify-send "PLAYBOOK COMPLETE"
?
Ich möchte insbesondere, dass dies nur auf ansible-playbook
Befehle angewendet wird (für diejenigen, die mit Ansible nicht vertraut sind: Es können beliebig viele Optionen, Argumente usw. folgen, ansible-playbook
sodass 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-playbook
ein 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-playbook
stellen Sie sicher, dass es dasreal ansible-playbook
, nicht sich selbst. In der obigen Funktion verhindert das Wort, dass command
die Funktion selbst in einer Endlosschleife aufgerufen wird.