From: NAJIMA Hiroki Date: 2010-09-23T13:04:16+09:00 Subject: [ruby-dev:42291] Re: WindowsでのKernel.systemの挙動、一貫性について 名島(Nazy)です。 (2010/09/22 9:44), U.Nakamura wrote: > In message "[ruby-dev:42276] Re: WindowsでのKernel.systemの挙動、一貫性について" > on Sep.22,2010 00:13:28, wrote: >> おそらくNEWSの下記と同じ観点の変更なんでしょうね。 >> * $: no longer includes the current directory, use require_relative > > まあ、合わせて変更したという意識はなくて、従来の挙動が実はバ > グだった的な感じではあります。 そうなんですね。 気になるのは、一貫してカレントディレクトリを無視するわけでは無いんですね。 明示的にカレントディレクトリを指定しなくても、拡張子を指定すると、 カレントディレクトリのコマンドが実行されます。 意図しない物が動いちゃいますし、一貫性はほしいです。 ## 実験 @ ruby 1.9.2p0 (2010-08-18) [i386-mingw32] ## ruby 1.9.3dev (2010-09-22 trunk 29317) [i386-mingw32]も同様 # バグ??:カレントディレクトリを指定しない&拡張子を指定→実行される C:\>C:\ruby192\bin\ruby -e 'p system("spa.bat")' This is C:\spa.bat. ARG0="spa.bat" ARG1="" true C:\>C:\ruby192\bin\ruby -e 'p system(["spa.bat"]*2)' This is C:\spa.bat. ARG0="spa.bat" ARG1="" true # 正常:カレントディレクトリを指定しない&拡張子を省略→実行されない C:\>C:\ruby192\bin\ruby -e 'p system("spa")' nil C:\>C:\ruby192\bin\ruby -e 'p system(["spa"]*2)' nil # 正常:カレントディレクトリを指定&拡張子も指定→実行される C:\>C:\ruby192\bin\ruby -e 'p system("./spa.bat")' This is C:\spa.bat. ARG0=".\spa.bat" ARG1="" true C:\>C:\ruby192\bin\ruby -e 'p system(["./spa.bat"]*2)' This is C:\spa.bat. ARG0=".\spa.bat" ARG1="" true # 正常:カレントディレクトリを指定&拡張子を省略→実行される C:\>C:\ruby192\bin\ruby -e 'p system("./spa")' This is C:\spa.bat. ARG0=".\spa.bat" ARG1="" true C:\>C:\ruby192\bin\ruby -e 'p system(["./spa"]*2)' This is C:\spa.bat. ARG0=".\spa.bat" ARG1="" true -- Hiroki NAJIMA (aka Nazy)