delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2002/12/04/01:58:23

Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Subscribe: <mailto:cygwin-subscribe AT cygwin DOT com>
List-Archive: <http://sources.redhat.com/ml/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-help AT cygwin DOT com>, <http://sources.redhat.com/ml/#faqs>
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 <rrschulz AT cris DOT com>
Subject: Re: Bash puzzle: Spaces, environment variables and tab
completion
In-Reply-To: <20021204060952.8081.qmail@web13602.mail.yahoo.com>
Mime-Version: 1.0

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<tab completion!>
>
>The above is close, I can
>% cd "$PF"; ls "$PF"/Games; and even
>ls "$PF"/G<tab> 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<tab> 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/

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019