On Dec 13, 8:17 am, Freddy Vulto <fvu...@gmail.com> wrote: > On 091213 05:13, DennisW wrote: > > > However, with quoting, these work: > > > compgen -f "a\'b/" > > compgen -f 'a\"b/' > > > or using a variable: > > > dir="a\'b/"; compgen -f $dir > > Both do not work at my machine? Are you sure you don't have a directory > `ab' besides `a\'b'? That's whap happened to me too... > It seems compgen is leaving out the quote out erroneously: > > $ mkdir a\'b > $ touch a\'b/c > $ mkdir ab > $ touch ab/e > $ compgen -f a\'b/ > ab/e # Should be a\'b/c > > Freddy Vultohttp://fvue.nl
$ ls -ld a*b ls: cannot access a*b: No such file or directory $ mkdir a\'b $ touch a\'b/c $ compgen -f a\'b/ $ compgen -f "a\'b/" a\'b/c # correct $ mkdir ab $ touch ab/e $ compgen -f "a\'b/" a\'b/c # correct $ compgen -f a\'b/ a\'b/e # INcorrect $ echo $BASH_VERSION # Ubuntu 9.10 4.0.33(1)-release However I just tested it under Cygwin with Bash 3.2.49(23)-release and got these results similar to yours: $ ls -ld a*b ls: cannot access a*b: No such file or directory $ mkdir a\'b $ touch a\'b/c $ compgen -f a\'b/ $ compgen -f "a\'b/" $ mkdir ab $ touch ab/e $ compgen -f "a\'b/" a\'b/e # INcorrect $ compgen -f a\'b/ ab/e # INcorrect Here, the quotes didn't give the correct results, but gave different incorrect ones.