Alle luned27 agosto 2007, Victor Reyes ha scritto:
> Team,
>
> I would like to enter a value at execution time within the *system* key
> world environment.
> However, I am having difficulties entering a value within a quoted string.
>
> For example, I can hard code the following and it works fine:
>
> system("start putty.exe -X -ssh -pw mypassword myuserid@myhostname")
>
> But this requires hard coding the password in the script.
> I would like to do something like the following:
>
> system("start putty.exe -X -ssh -pw " ARGV[0] " myuserid@myhostname")
>
> Where: ARGV[0] holds the password entered by the invoker of the script.
>
> Is there a way to substitute within a quoted string?
> Is there a better way to do this?
>
> Thank you
>
> Victor

You need string interpolation:

  system("start putty.exe -X -ssh -pw #{ARGV[0]} myuserid@myhostname")

In a double quoted string (as well as in a regexp or backtick expression) you 
can substitute insert the value of any expression by enclosing it in #{}:

 a = 2

 puts "a is #{a}"

 => a is 2

 This doesn't work in single-quoted strings.

 puts 'a is #{a}'

 => a is #{a}

I hope this helps

Stefano