delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2002/12/04/02:24:11

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
From: "Gary R. Van Sickle" <g DOT r DOT vansickle AT worldnet DOT att DOT net>
To: <cygwin AT cygwin DOT com>
Subject: RE: Bash puzzle: Spaces, environment variables and tab completion
Date: Wed, 4 Dec 2002 01:23:59 -0600
Message-ID: <NCBBIHCHBLCMLBLOBONKCEAPDJAA.g.r.vansickle@worldnet.att.net>
MIME-Version: 1.0
X-Priority: 3 (Normal)
X-MSMail-Priority: Normal
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1106
In-Reply-To: <5.2.0.9.2.20021203225120.02462148@pop3.cris.com>
Importance: Normal

> James,
>
> You're swimming upstream. Don't do that. Use the system in accordance with
> its design.
>

Don't listen to him Jim!  You pound anything long enough, it'll give!

> 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.
>

If you do:

 VAR='path with spaces'

it tab-completes to:

 path\ with\ spaces\

which is what James wants.  Unfortunately, and as I neglected to note in my last
post since I didn't realize it til just now, you can't:

 cd $VAR

you must still

 cd "$VAR"

Ah well, more pounding I guess....

>
> 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/
>

--
Gary R. Van Sickle
Brewer.  Patriot.


--
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