From: Robert Klemme Date: 2005-04-26T17:04:30+09:00 Subject: Re: escape special charactor "sin kanti" schrieb im Newsbeitrag news:377080260504251254103e737b@mail.gmail.com... > i use > $output = `command` > because i want to puts $output later Two options: use single quotes when building the command like: cmd = "your_program -p '#{password}'" escape the password: cmd = "your_program -p #{password.gsub(/&/, '\\\\&')}" I'd choose optin 1 because it's simpler and safer (note though that you need similar escaping if the password contains single quotes). Kind regards robert > > sinchai > > On 4/25/05, Joel VanderWerf wrote: > > sin kanti wrote: > > > Hi all, > > > > > > I write script to send password to unix shell. > > > But i found out that if the password contain special charactor such as &, > > > Shell will interpret it as background process. > > > So, it have to use \& instead. > > > > > > Is there any function can detect special char? > > > and return it is escape form? ( like \& ) > > > > > > i found similar function in Regexp.escape, but it can't detect & > > > > Are you using #system? If so, you can prevent the shell from expanding > > things by passing each shell argument as a separate ruby argument: > > > > irb(main):001:0> system "echo foo&" > > foo > > => true > > irb(main):002:0> system "echo", "foo&" > > foo& > > => true > > > > > > >