Supposons que je souhaite modifier le comportement d'origine de l' ls
outil de cette façon:
$ ls
Hello World
file1 file2 ...
Comment puis-je faire ceci?
Lors de l'exécution, ls
je voudrais exécuter une autre commande, disons echo "Hello World!"
.
La solution rapide que je vois utilise l'alias:
alias orig_ls="ls"
alias ls='echo "Hello World!"'
Cependant, ce n'est pas une vraie solution, car lorsque je l'exécuterai, orig_ls
il sortira "Hello World!"
.
bash
shell
command-line
alias
Ionică Bizău
la source
la source
Réponses:
Parfois, un alias n'est pas assez puissant pour faire facilement ce que vous voulez, alors voici un moyen sans les utiliser.
Dans un fichier provenant du démarrage de votre shell (par exemple
.bashrc
), ajoutez la fonction suivante:Contrairement à un alias, une fonction peut récursivement. C'est pourquoi
command ls
est utilisé à la place dels
; il indique à votre shell d'utiliser la fonction réellels
au lieu de la fonction que vous venez de définir.la source
command
alternative pour OS X?command
n'a pas fonctionné: / Je n'ai aucune idée et je n'ai pas de Mac avec lequel le tester, désolé.Vous ne devez pas oublier d'appeler
ls
:la source
&
effet utiliser, mais je ne comprends pas l'argument que vous faites à partir de cela.