Agregar automáticamente bits antes y después de un comando bash

Agregar automáticamente bits antes y después de un comando bash

¿Es posible poder ingresar fooy hacer que bash lo convierta automáticamente a time foo && notify-send "PLAYBOOK COMPLETE"?

Me gustaría específicamente que esto se aplique solo a ansible-playbooklos comandos (para aquellos que no están familiarizados con Ansible, puede seguir cualquier cantidad de opciones, argumentos, etc., ansible-playbookpor lo que un simple alias probablemente no funcione) para recibir una notificación cuando se complete un libro de jugadas largo. ha terminado.

Un comando antes de cada comando bashParecía prometedor, pero desafortunadamente no funcionó correctamente para mí.

Respuesta1

Con una función de shell:

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

o

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

La última forma es la forma POSIX de definir una función, pero ansible-playbookel alias (si lo hay) puede interferir. La primera forma es inmune pero no portátil. Si no hay ningún alias y estás usando Bash, cualquiera de los formularios funcionará.

O puede escribir un script contenedor que funcione de manera similar. Si le pones un nombre ansible-playbook, asegúrate de que llame alreal ansible-playbook, no en sí mismo. En la función anterior, la palabra commandimpide llamar a la función misma en un bucle infinito.

información relacionada