ruby-core

Mailing list archive

[#29911] [Bug #3231] Digest Does Not Build — Charlie Savage <redmine@...>

Bug #3231: Digest Does Not Build

19 messages 2010/05/01

[#29920] [Feature #3232] Loops (while/until) should return last statement value if any, like if/unless — Benoit Daloze <redmine@...>

Feature #3232: Loops (while/until) should return last statement value if any, like if/unless

9 messages 2010/05/01

[#29997] years in Time.utc — Xavier Noria <fxn@...>

Does anyone have a precise statement about the years supported by

13 messages 2010/05/04

[#30010] [Bug #3248] extension 'tk' is finding tclConfig.sh and tkConfig.sh incorrectly — Luis Lavena <redmine@...>

Bug #3248: extension 'tk' is finding tclConfig.sh and tkConfig.sh incorrectly

9 messages 2010/05/05

[#30226] [Bug #3288] Segmentation fault - activesupport-3.0.0.beta3/lib/active_support/callbacks.rb:88 — Szymon Jeż <redmine@...>

Bug #3288: Segmentation fault - activesupport-3.0.0.beta3/lib/active_support/callbacks.rb:88

10 messages 2010/05/13

[#30358] tk doesn't startup well in doze — Roger Pack <rogerdpack2@...>

Currently with 1.9.x and tk 8.5,the following occurs

12 messages 2010/05/22

[ruby-core:30504] [Bug #3321][Rejected] Kernel#system do not execute command in subshell even if it contains variable assignments

From: Yusuke Endoh <redmine@...>
Date: 2010-05-30 07:29:37 UTC
List: ruby-core #30504
Issue #3321 has been updated by Yusuke Endoh.

Status changed from Open to Rejected

Hi,

> So '=' must also be a special character to be recognized as a sign to execute command in subshell.

It may cause compatibility issue.

$ cat scr\=ipt
#!/bin/sh
echo arg:$*
echo scr:$scr

$ PATH=. ./ruby -e 'system("scr=ipt ./scr=ipt")'
arg:./scr=ipt
scr:

$ PATH=. ./ruby -e 'system("scr=ipt ./scr=ipt 2> /dev/null")'
arg:
scr:ipt

Yes, I admit it is a pedantic example.  But process invocation may
cause singinicant result (such as breaking system), so we cannot be
too conservative, I think.


For your purpose, I recommend you use env option

  system({"TEST" => "test"}, "./script.sh")

If you really want to execute it via shell, you can use ';'

  system("TEST=test ./scr=ipt;")'

Thanks,

-- 
Yusuke Endoh <mame@tsg.ne.jp>
----------------------------------------
http://redmine.ruby-lang.org/issues/show/3321

----------------------------------------
http://redmine.ruby-lang.org

In This Thread

Prev Next