
実行するコマンドがあります。これを と呼びましょう。次のようにフルパスを指定せずにfoo
実行できます。foo
foo
$ foo
missing args
foo
は bash スクリプトであると思われるので、 のソース コードを確認したいのですfoo
が、確認するとwhich foo
標準エラー メッセージが表示されます。
which: no foo in (/usr/local/bin ...removed for brevity ...)
何が起こったのですか?
答え1
組み込み関数を使うこともできますtype
。これは、引数がコマンド名として使用された場合にどのように解釈されるかを示します。たとえば、関数、組み込み関数、バイナリ( の下$PATH
)などです。
$ f() { echo foo; }
$ type f
f is a function
f ()
{
echo foo
}
$ type type
type is a shell builtin
$ type grep
grep is /usr/bin/grep
$ alias z='echo zee zee'
$ type z
z is aliased to `echo zee zee'
参照なぜ を使わないのですか"which"
? では何を使うのでしょうか?この件に関するより詳しい記事については、こちらをご覧ください。