「コマンド」コマンドはどこで見つけることができますか?

「コマンド」コマンドはどこで見つけることができますか?

次のシェル関数があります。

rebar3 () {
    set -o localoptions -o localtraps
    trap '/bin/stty sane' INT
    command rebar3 "$@"
}

バイナリをどこでcommand rebar3見つけることができるかどうかはどうすればわかりますか?rebar3

次のことを試しましたが、そのうち何も機能しません。

% which rebar3
rebar3 () {
    set -o localoptions -o localtraps
    trap '/bin/stty sane' INT
    command rebar3 "$@"
}

…助けにならない。

% command -v rebar3
rebar3

…助けにならない。

% command -V rebar3
rebar3 is a shell function from /Users/rogerlipscombe/.zshrc

… …すでに知っています。

% command -p rebar3
zsh: command not found: rebar3

...バイナリがデフォルトパスにないためです。

whichorを使用するときにzshに関数/エイリアスを無視させる方法は何ですかcommand -v

ベストアンサー1

POSIXメソッドはzshで動作します。

(unalias rebar3 2>/dev/null; unset -f rebar3 2>/dev/null; command -v rebar3)

照会を実行するPOSIX方式PATHも明示的に適用されます。ここでは$PATH空のコンポーネントがないと仮定し、簡単なアプローチを示します。

(IFS=:; set -f; for p in $PATH; do ls $p/rebar3 2>/dev/null; done)

Zshは次のおかげでルートを見つけるより簡単な方法を提供します。path大量にそしてN グローバル予選

print -lr $path/rebar3(N)

command -v rebar3type rebar3または、または、または同じことを希望するアイデアから始めるには、which rebar3次の記事を探します。commandtypeまたはwhich rebar3、これはすべて、それらが中心にあることを示します。whence内蔵。これはあなたを導くでしょう

whence -p rebar3

外部コマンドのみを表示するか、そのうちの1つのみを表示

whence -a rebar3
type -a rebar3

すべてを表示します(エイリアス、機能、組み込み外部コマンド)。which -a rebar3それも機能しますが、注意が気になる関数コードが表示されます。

おすすめ記事