Exécuter un script lorsqu’une commande est exécutée indépendamment des arguments de la commande

rm -rf rm -r rm -f rm 

Lorsque l’une de ces commandes est exécutée, je souhaite qu’elles exécutent un script spécifique.

Quelque chose comme un alias ?='some_script.sh'

(le point d’interrogation dans ce cas signifie la commande rm avec des arguments quelconques.)

Comment cela peut-il être fait? Je n’ai pas à utiliser des alias, tout ce qui fonctionne est bien.

N’utilisez pas d’alias; définir une fonction:

 rm () { some_script.sh command rm "$@" } 

La clause de non-responsabilité standard lors de la modification du comportement de rm s’applique de quelque manière que ce soit. Ne le faites pas c’est some_script.sh est destiné à être un filet de sécurité de quelque sorte. Vous pouvez vous y fier et être désagréablement surpris si vous utilisez une machine sans ce filet de sécurité installé.

Si vous devez exécuter le script à chaque commande bash , le mieux est de l’append à une variable spéciale dans bash , qui s’exécute chaque fois qu’une commande est saisie dans l’invite.

La variable PROMPT_COMMAND , il suffit d’append votre script some_script.sh comme

 $ PROMPT_COMMAND+="some_script.sh;" 

Ou, si vous souhaitez créer un script uniquement pour la commande rm , conserver un alias est le meilleur moyen de le faire. Ajouter la ligne dans votre ~.bashrc et le source après avoir effectué la modification.

 alias rm="some_script.sh; rm"