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
関数自体が無限ループで呼び出されるのを防ぎます。