This is the mail archive of the cygwin@sourceware.cygnus.com mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: MS-DOS CR/LF compatibility in $() and ``?


--- Pontus Lidman <pontus@mathcore.com> wrote:
> It seems that when the output of a command contains MS-DOS newlines
> (CR+LF), these are not stripped from the end of the output when command
> substitution is done.
> 
> Example:
> 
> echo -e "test\r\n" >file
> VAR=`cat file`
> echo xxx${VAR}yyy
> 
> this will produce the output
> yyytest
> 
> which indicates that there is a newline or carriage return at the end of
> the text of the variable. This is very unfortunate e.g. if the text was
> supposed to be a filename because test -f "$VAR" will fail even if the
> intended file exists.
> 
> Is there a way to get around this problem (Cygwin B20)?

This indicates to me that you're using binary mounts, am I correct?  It would
be normal for the \r to remain from the read when setting the variable with cat
if the file processing mode is set to binary.  If I'm correct, then you'll need
to filter the file to remove the \r just as you would on any UNIX environment
or you can move back to text mounts.

Also, which Cygwin dll are you using?  If it is stock b20.1 then see my pages
for more information.
===
Earnie Boyd <mailto:earnie_boyd@yahoo.com>

Newbies, please visit
<http://www.freeyellow.com/members5/gw32/index.html>

(If you respond to the list, then please don't cc me)
__________________________________________________
Do You Yahoo!?
Bid and sell for free at http://auctions.yahoo.com


--
Want to unsubscribe from this list?
Send a message to cygwin-unsubscribe@sourceware.cygnus.com


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]