ただただしです。

Keisuke CHIBA <chiba / lab.imagica.co.jp> wrote:
>スクリプト中でコマンドの絶対パスを知りたいと思ったので,
>
>a = `type ls`
>puts "(#{a})"
>
>というスクリプトを実行してみたら,
>
>/tmp/test.rb:1: command not found: type ls
>()

 それはtypeがシェルの内部コマンドだから?

>どうしてこういうことが起こるのでしょうか? また, コマンドの絶
>対パスを知るためのもっとよい方法があれば教えて頂けると幸いで
>す.

 いま手元にあるシステム(FreeBSD 2.2.7)には/usr/bin/whichがありま
すが、これなら

$ ruby -e 'p `which ls`.chomp'
"/bin/ls"

って感じで得られます。でも場合によってはwhichがtypeのaliasだったり
するシステムがあるかも。

----
□Don't □ ただただし@神奈川県相模原市 <sho / spc.gr.jp>
□Think,□ カブ   http://www.bekkoame.ne.jp/~sho/cub/
□Buuuy.□ こま犬 http://www.bekkoame.ne.jp/~sho/komainu/