ツールの元の動作を次のように変更するとします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
の代わりに を使用するのはそのためです。これは、定義した関数ではなくls
実際の を使用するようにシェルに指示します。ls
答え2
忘れずに電話してくださいls
:
alias ls='echo "Hello World!"; ls'