Digamos que quiero modificar el comportamiento original de la ls
herramienta de esta manera:
$ ls
Hello World
file1 file2 ...
¿Cómo puedo hacer esto?
Al ejecutar, ls
me gustaría ejecutar otro comando, digamos echo "Hello World!"
.
La solución rápida que veo es usar alias:
alias orig_ls="ls"
alias ls='echo "Hello World!"'
Sin embargo, esta no es una solución real ya que cuando lo ejecute, orig_ls
aparecerá "Hello World!"
.
Respuesta1
A veces, un alias no es lo suficientemente potente como para hacer fácilmente lo que quieres, así que aquí tienes una manera de no usarlos.
En algún archivo que se obtiene cuando se inicia su shell (por ejemplo .bashrc
), agregue la siguiente función:
ls () {
echo "Hello world!"
command ls "$@"
}
A diferencia de un alias, una función puede repetirse. Por eso command ls
se usa en lugar de ls
; le dice a su shell que use la ls
función real en lugar de la que acaba de definir.
Respuesta2
No debes olvidar llamar a ls
:
alias ls='echo "Hello World!"; ls'