Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com Message-Id: <5.2.0.9.2.20021203225120.02462148@pop3.cris.com> X-Sender: rrschulz AT pop3 DOT cris DOT com Date: Tue, 03 Dec 2002 22:59:19 -0800 To: cygwin AT cygwin DOT com From: Randall R Schulz Subject: Re: Bash puzzle: Spaces, environment variables and tab completion In-Reply-To: <20021204060952.8081.qmail@web13602.mail.yahoo.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii"; format=flowed James, You're swimming upstream. Don't do that. Use the system in accordance with its design. Parsing command lines based on white-space separators fundamentally entails the need for escaping or quoting when those separator characters are to be included in the arguments and not used to separate them. At 22:09 2002-12-03, James Shaw wrote: >Hi everyone, > >I have been using cygwin for several months, and there is something that I >haven't been able to figure out how to do: effectively use spaces in bash >environment variables. > >I realize this is basically a bash question and isn't Cygwin specific, but >I'm sure more Cygwin users have to deal with spaces in bash than the >typical bash user. > >What I want to do is define an environment >variable so I can easily cd or ls. E.g. >% PF="/cygdrive/c/Program Files" >% cd $PF >% ls $PF/Games >% ls $PF/G > >The above is close, I can >% cd "$PF"; ls "$PF"/Games; and even >ls "$PF"/G however, the quotes are clunky. > >My kludge to avoid the quotes is: > >% PF2="/cygdrive/c/Program?Files" > >which allows cd $PF; ls $PF/Games, > >but stops bash in its tracks on tab completion. > >Since I would find this very handy, I've spent some time on trying to make >this work. I've tried various quoting schemes, but with no luck. > >So, I ask the list: > Can you define $PF so that cd $PF; > ls $PF/Games; and ls $PF/G all work??? No, No and Yes. Just leave the spaces in the variable and command completion will insert the necessary escapes when expanding it. If the variable references is already inside a double-quote (even if it's not yet closed on the right), then command completion will not insert the backslashes. >I usually like to puzzle these out for myself, but in this case, I'm stumped. > >Thanks for your help, >James Randall Schulz Mountain View, CA USA -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Bug reporting: http://cygwin.com/bugs.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/