Mailing-List: contact cygwin-help AT sourceware DOT cygnus DOT com; run by ezmlm List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT sourceware DOT cygnus DOT com Delivered-To: mailing list cygwin AT sourceware DOT cygnus DOT com Message-ID: <19990826121058.23046.rocketmail@web113.yahoomail.com> Date: Thu, 26 Aug 1999 05:10:58 -0700 (PDT) From: Earnie Boyd Reply-To: earnie_boyd AT yahoo DOT com Subject: Re: MS-DOS CR/LF compatibility in $() and ``? To: Pontus Lidman , cygwin AT sourceware DOT cygnus DOT com MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii --- Pontus Lidman 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 Newbies, please visit (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 AT sourceware DOT cygnus DOT com