
On Mon, Jan 5, 2015 at 12:09 PM, Stephen J. Turnbull < turnbull@sk.tsukuba.ac.jp> wrote:
Which is normally "nothing" on POSIX, since the shell does it for you. Or, if you're talking about what the shell does for you, while I suppose there is a basic globbing defined by POSIX, but bash and zsh go well beyond that, and they behave somewhat differently in corner cases IIRC.
Indeed. I only have 2.7.2 available here at work. Here's what bash tells me on a Linux box: % ls yen{2,3}.* yen2.out yen2.png yen2.trade yen3.out yen3.png yen3.trade % ls yen[23].* yen2.out yen2.png yen2.trade yen3.out yen3.png yen3.trade Here's what /bin/sh tells me on a Solaris 10 box: $ ls yen{2,3}.* yen{2,3}.*: No such file or directory $ ls yen[23].* yen2.out yen2.png yen2.trade yen3.out yen3.png yen3.trade Here's what the glob module tells me: % python Python 2.7.2 (default, Nov 14 2012, 05:07:35) [GCC 4.4.6 [TWW]] on linux3 Type "help", "copyright", "credits" or "license" for more information.
import glob glob.glob("yen{2,3}.*") [] glob.glob("yen[23].*") ['yen3.trade', 'yen2.out', 'yen2.trade', 'yen3.out', 'yen3.png', 'yen2.png']
I only discovered this "shortcoming" (or "Bourne Shell dependency") relatively recently. I've been using bash for so long it never even occurred to me that {...} notation wasn't available in all shells. Skip