関数と同じエイリアスがありますか? [閉鎖]

関数と同じエイリアスがありますか? [閉鎖]
  1. エイリアスは関数と同じですか?つまり、別名が表示されるたびに関数名に置き換えられ、関数名が出るたびに別名に置き換えることができますか?

  2. 私が正しい場合、ランダムなエイリアスは次の形式で定義されます。

    alias myalias=blahblah
    

    上記の形式で定義されたエイリアスは、常に次のように定義された関数と同じですか?

    myfun () { blahblah $@ }
    

    それ以外の場合、エイリアスはどの機能と同じですか?

ありがとうございます。

ベストアンサー1

光沢のマニュアルでわかるように、エイリアスはほぼ完全に関数に置き換えられました。関数は、エイリアスが実行できるほとんどすべての操作を実行でき、順序に関係なく使用できる引数を受け入れることができるため、それ以上を実行できます。

関数ができないことは、引数の拡張を防ぐことです。つまり、エイリアスを使用する唯一の理由は、拡張されていない関数呼び出しを設定することです。

alias funny='set -f; _funny'
_funny(){ set +f ; do_something_with_unexpanded_args ;}

これで、ファイルリストの代わりに現在のディレクトリのファイルを実行して表示funny *できます。*

おすすめ記事