Digamos que eu queira modificar o comportamento original da ls
ferramenta desta forma:
$ ls
Hello World
file1 file2 ...
Como posso fazer isso?
Ao executar, ls
gostaria de executar outro comando, digamos echo "Hello World!"
.
A solução rápida que vejo é usar o alias:
alias orig_ls="ls"
alias ls='echo "Hello World!"'
No entanto, esta não é uma solução real, pois quando eu for executá-la, orig_ls
a saída será "Hello World!"
.
Responder1
Às vezes, um alias não é poderoso o suficiente para fazer o que você deseja com facilidade, então aqui está uma maneira de não usá-los.
Em algum arquivo originado quando seu shell é iniciado (por exemplo .bashrc
), adicione a seguinte função:
ls () {
echo "Hello world!"
command ls "$@"
}
Ao contrário de um alias, uma função pode ser recursiva. É por isso que command ls
é usado em vez de ls
; ele diz ao seu shell para usar a função real ls
em vez da função que você acabou de definir.
Responder2
Você não deve esquecer de ligar ls
:
alias ls='echo "Hello World!"; ls'