次のシェル関数があります。
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
...バイナリがデフォルトパスにないためです。
which
orを使用するときに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 rebar3
type rebar3
または、または、または同じことを希望するアイデアから始めるには、which rebar3
次の記事を探します。command
、type
またはwhich rebar3
、これはすべて、それらが中心にあることを示します。whence
内蔵。これはあなたを導くでしょう
whence -p rebar3
外部コマンドのみを表示するか、そのうちの1つのみを表示
whence -a rebar3
type -a rebar3
すべてを表示します(エイリアス、機能、組み込み外部コマンド)。which -a rebar3
それも機能しますが、注意が気になる関数コードが表示されます。