
是否可以輸入foo
並讓 bash 自動轉換為time foo && notify-send "PLAYBOOK COMPLETE"
?
我特別希望這僅適用於ansible-playbook
命令(對於那些不熟悉 Ansible 的人來說,可能會跟隨任意數量的選項、參數等,ansible-playbook
因此簡單的別名可能無法解決問題),這樣當一個很長的劇本時我會收到通知已完成。
每個 bash 命令之前的命令看起來很有希望,但不幸的是對我來說並沒有正確工作。
答案1
具有外殼功能:
function ansible-playbook { time command ansible-playbook "$@" && notify-send "PLAYBOOK COMPLETE"; }
或者
ansible-playbook () { time command ansible-playbook "$@" && notify-send "PLAYBOOK COMPLETE"; }
後一種形式是定義函數的 POSIX 方式,但ansible-playbook
別名(如果有)可能會幹擾。前一種形式可以免疫,但不可移植。如果沒有別名且您使用的是 Bash,則任一形式都可以使用。
或者您可以編寫一個以類似方式工作的包裝器腳本。如果您命名它ansible-playbook
,請確保它調用真實的 ansible-playbook
,不是它本身。在上面的函數中,該詞command
防止在無限循環中呼叫函數本身。