ユーザーが実行したいコマンドを実行する前に、別のコマンドを実行してください。

ユーザーが実行したいコマンドを実行する前に、別のコマンドを実行してください。

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

おすすめ記事