On 10/09/2007, Glenn Fowler <gsf at research.att.com> wrote: > > On Mon, 10 Sep 2007 16:13:12 -0500 Shawn Walker wrote: > > On 10/09/2007, David Korn <dgk at research.att.com> wrote: > > > Subject: Re: Re: [ksh93-integration-discuss] TAB not working in the > > > middle of a string > > > -------- > > > > Why is the = needed? Bash doesn't require a = before : separated > > > > lists, i.e. using tab or ESC ESC completes /bin:/usr/openbin/b to > > > > /bin:/usr/openwin/bin without a = in a bash shell > > > > > > The = is needed since : is a legal character in a file name. > > > You realise, of course, that the next question will be "then why does > > Bash do that...". > > > I've checked this out for myself; bash does not require a ':'. > > > Any chance of a "bash compatibility" mode or control over this behaviour? > > bash also does this for > > echo foo:b<TAB><TAB> > > and will not match valid pathnames containing ':' > > why does bash do that?
Apparently, it requires the ':' to be escaped, this works: mkdir foo:bar echo foo\:b<TAB><TAB> I suppose then it is down to the common case. Which is more common, a colon in a directory or filename or a colon being used as a list separator? I defer to whatever relevant standard exists, but it is something to think about... -- Shawn Walker, Software and Systems Analyst binarycrusader at gmail.com - http://binarycrusader.blogspot.com/ "Beware of bugs in the above code; I have only proved it correct, not tried it. " --Donald Knuth