コピー2016.10.07アニメ『ブレイブウィッチーズ』なんだか『ストライクウィッチーズ』に似てるなあ、似せたものを作るのって難しいのでは、と思っていたら、どうも『ストライクウィッチーズ』の新作のようです。タイトルが違うだけした。『ストライクウィッチーズ』では、501でしたが、今回は、第502統合戦闘航空団です。このアニメシリーズのウィッチは、魔法を使うときに、動物の耳としっぽが生えます。重要な人には重要なポイントなのでしょうね。今回はウィッチ繋がりで、whichコマンドのソースでも読んでみましょう。パッケージは、たぶんcoreutilsでしょうか。ソースは今後すぐに参照できるように決まったディレクトリ、/usr/srcの下に入れておきます。シンボリックリンクも貼っておきます。exitfindでwhichを探してみましょう。'*which*'あれ、ありません。which自体をwhichして、パスを得ます。次にパッケージの検索です。whichが格納されているのは、debianutilsのようです。debianutilsのソースを取得します。例によって、/usr/src/の下に格納してシンボリックリンクを貼っておきます。exitfindでwhichのソースを探します。あれれ、おかしいです。C言語のソースが見当たりません。して、whichがソースなのでしょうか。fileコマンドでチェックします。scriptのようです。して、/usr/bin/whichもテキストファイルなのでしょうか。テキストファイルでした。wcで行数もみてみましょう。行数も少なく、headを見る限り簡潔に書かれているようですので、この際全文見てみましょう。"$ALLRET"このスクリプトには、ライセンス表記がないんですねえ。PATH中のディレクトリの中に、引数で指定したコマンドのファイルが見つかるかチェックするスクリプトとなっています。「ELEMENT/引数で指定したコマンド」のパスのファイルがtestコマンド([])で見つかるかチェックしています。チェックが済んだら、IFSをIFS_SAVEに保存した値で元に戻していますね。端折って書くとこんな感じになるのでしょうか。