私は automake という独自のプログラムを持っています。これはもともと Ubuntu マシンで作成したもので、最近 OSX Lion を実行しているマシンで作業したいと考えていました。
私はそれをコンパイルし、私の変数/Users/andrew/bin
にリストされている最初のディレクトリの1つである私のディレクトリにコピーしました:PATH
bash-3.2$ echo $PATH | tr : '\n'
.
/Users/andrew/bin
/opt/local/bin
/opt/local/sbin
/Users/andrew/Library/Application Support/GoodSync
/Users/andrew/.rvm/gems/ruby-1.9.3-p194/bin
/Users/andrew/.rvm/gems/ruby-1.9.3-p194@global/bin
/Users/andrew/.rvm/rubies/ruby-1.9.3-p194/bin
/Users/andrew/.rvm/bin
.
/usr/bin
/bin
/usr/sbin
/sbin
/usr/local/bin
/usr/X11/bin
/Users/andrew/.rvm/bin
/Users/andrew/bin
/Users/andrew/.rvm/bin
ただし、automake を実行しようとすると、明らかに別の automake プログラムが実行されています。これは xcode 開発者ツールの 1 つだと思います。
bash-3.2$ automake game.cpp
automake: error: no Automake input file found for 'game.cpp'
automake: error: no input file found among supplied arguments
このバージョンの automake は にあり/opt/local/bin
ます。私が理解していないのは、automake がPATH
変数の以前のディレクトリにある場合に、これがどのように可能になるかということです。実際、UNIXwhich
プログラムは automake へのパスを表示します。
bash-3.2$ which automake
/Users/andrew/bin/automake
これは何の魔術ですか?