Subject: Re: Bug of bash with sed operation ???
From: Bob McGowan <[email-masked]>
To: [email-masked]
Date: Tue, 20 Jun 2000 09:56:17 -0700

Chris Faylor wrote:
> 
> On Tue, Jun 20, 2000 at 10:35:03AM -0400, Zhiguang Qian wrote:
> >Hi,
> >
> >Here is the sample.
> >
> >>>export MY=\aaa\bbb.c
> >>>echo $MY | sed -e 's#\\#\/#g'
> >>> /aaa/bbb.c
> >>>out=`echo $MY | sed -e 's#\\#\/#g'`
> >>> sed: -e expression #1, char 8: Unterminated `s' command
> >
> >Try it.
> 
> I did.  Have you tried it on UNIX?  Same effect.  It's not a bug.
> 
> Your \\ is being eaten inside the ` ...  ` command.  You probably need
> to double up on these when you are using them inside of backquotes (or
> " style quotes for that matter).
> 

I tried it too, but things didn't work as described above, from line
one.  After assigning to MY and doing a simple echo, bash printed:

   aaabbb.c

The initial single backslashes are stripped to begin with (normal escape
processing).  So I could not get any output looking like "/aaa/bbb.c". 
Perhaps I missed something in an earlier post?

I got the last part, unterminated `s' command, in both bash
2.03.0(2)-release (CD 1.0) and 2.04.0(1)-release (from the net).  As
Chris notes this is normal behavior due to two passes through the
interpreter for command substitution rather than one as in the first sed
case.

-- 
Bob McGowan
Staff Software Quality Engineer
VERITAS Software
[email-masked]

--
Want to unsubscribe from this list?
Send a message to [email-masked]