強制PATH検索タイプに関する問題

強制PATH検索タイプに関する問題

バッシュです。魚も同様に行動します。

$ which python
/usr/bin/python
$ alias py=python
$ type py
py is aliased to `python'

その後、実行は、以下に見られるものと同様の方法でtype -P py期待どおりに何も印刷しません。/usr/bin/pyton

$ type ls
ls is aliased to `ls --color=auto'
$ type -P ls
/bin/ls

このオプションのマニュアル-Pは次のとおりです。

  -P        force a PATH search for each NAME, even if it is an alias,
    builtin, or function, and returns the name of the disk file
    that would be executed

/usr/bin(ディレクトリpython)がにあることを確認しましたPATH

ここで何が起こっているのでしょうか?

ベストアンサー1

これ:

エイリアスでも、すべての名前に対して強制的にパス検索を実行します。

これは、bashがエイリアスを拡張してから拡張コマンドを検索するという意味ではありません。つまり、コマンドfooとエイリアスがある場合は、エイリアスがマスクされていても名前付きコマンドを探し続けます。したがって、bashは拡張されず、表示されません。footype -P foofoopytype -P pypython/usr/bin/python

おすすめ記事