
ls
ツールの元の動作を次のように修正したいとします。
$ ls
Hello World
file1 file2 ...
どうすればいいですか?
実行時にls
別のコマンドを実行したいと思いますecho "Hello World!"
。
私が見る簡単な解決策は、エイリアスを使用することです。
alias orig_ls="ls"
alias ls='echo "Hello World!"'
しかし、実行するorig_ls
と"Hello World!"
。
答え1
時々、エイリアスは目的の操作を簡単に実行するのに十分強力ではないため、エイリアスを使用せずにこれを実行する方法があります。
シェルの起動時にインポートする一部のファイル(たとえば.bashrc
)に次の関数を追加します。
ls () {
echo "Hello world!"
command ls "$@"
}
エイリアスとは異なり、関数は再帰的です。そのため、command ls
代わりにisを使用すると、定義した関数の代わりにls
実際の関数を使用するようにシェルに指示します。ls
答え2
電話することを忘れないでくださいls
。
alias ls='echo "Hello World!"; ls'