From: nobu@... Date: 2004-09-11T00:23:02+09:00 Subject: [ruby-dev:24251] Re: system("") なかだです。 At Fri, 10 Sep 2004 00:59:12 +0900, Tanaka Akira wrote in [ruby-dev:24244]: > > In article <200409071020.i87AK2Um023393@sharui.nakada.niregi.kanuma.tochigi.jp>, > nobu@ruby-lang.org writes: > > > perlや1.8まででもエラー扱いというか失敗扱いではあるんですが、 > > 1.9から例外を上げるようになったという違いがあります。-talkでも、 > > 後方互換性を損なうのでsystemは元に戻して新しいメソッドを追加し > > たほうがいいんじゃないか、という意見は出ています。 [ruby-talk:104889]あたり。 > しばらく考えたのですが、例外は良くないように思います。 > > system というのは sh 経由で実行するのが基本で、メタキャラクタがないと > きに直接実行するのを最適化だと考えると、 > > % ruby -e 'system("echoo xxx")' > -e:1:in `system': No such file or directory - echoo xxx (Errno::ENOENT) > from -e:1 > zsh: exit 1 ruby -e 'system("echoo xxx")' > % ruby -e 'system("echoo xxx;")' > sh: line 1: echoo: command not found > > というように、メタキャラクタの有無で挙動が変化するのは良くないんじゃな > いかと思うわけです。 ENOENTになった場合もsh経由を試してみるということでしょうか。 -- --- 僕の前にBugはない。 --- 僕の後ろにBugはできる。 中田 伸悦