[ruby-dev:24251] Re: system("")

From: nobu@...
Date: 2004-09-10 15:23:02 UTC
List: ruby-dev #24251
なかだです。

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はできる。
    中田 伸悦

In This Thread

Prev Next