Re: [PATCH] doc: Document another pitfall of shell pattern matching

Paul Eggert <[email protected]> Tue, 6 May 2025 05:11:51 -0700
Newsgroups gmane.comp.sysutils.autoconf.patches
Organization UCLA Computer Science Department
Message-ID <[email protected]>
This is a multi-part message in MIME format.
--------------HZOw65kZzbtWfLFkypHP0azo
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Thanks, I installed that, along with the attached followup which 
documents some other globbing pitfalls.

By the way, brace expansion is not part of globbing: it's a prepass over 
the shell command and it operates independently of file names. Brace 
expansion does not work when doing pattern matching in 'case' 
statements, for example. So I adjusted the example to not imply that 
brace expansion cares whether files exist.
--------------HZOw65kZzbtWfLFkypHP0azo
Content-Type: text/x-patch; charset=UTF-8;
 name="0001-More-shell-patterns-to-avoid.patch"
Content-Disposition: attachment;
 filename="0001-More-shell-patterns-to-avoid.patch"
Content-Transfer-Encoding: base64

RnJvbSA2M2ZmYThlOTUwZGU1ZDI1ZjMyNDY0YjMxODg1ZTUzNjNjNTVlOGNjIE1vbiBTZXAg
MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEVnZ2VydCA8ZWdnZXJ0QGNzLnVjbGEuZWR1
PgpEYXRlOiBUdWUsIDYgTWF5IDIwMjUgMDU6MDQ6MDQgLTA3MDAKU3ViamVjdDogW1BBVENI
XSBNb3JlIHNoZWxsIHBhdHRlcm5zIHRvIGF2b2lkCgoqIGRvYy9hdXRvY29uZi50ZXhpIChT
aGVsbCBQYXR0ZXJuIE1hdGNoaW5nKToKSW1wcm92ZSBvbiB0aGUgcmVjZW50IGRpc2N1c3Np
b24gYWJvdXQgYnJhY2UgZXhwYW5zaW9uLgotLS0KIGRvYy9hdXRvY29uZi50ZXhpIHwgNTUg
KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0KIDEgZmls
ZSBjaGFuZ2VkLCA0MiBpbnNlcnRpb25zKCspLCAxMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1n
aXQgYS9kb2MvYXV0b2NvbmYudGV4aSBiL2RvYy9hdXRvY29uZi50ZXhpCmluZGV4IDEyOWU4
MDE4Li4xMjczNDQ0NiAxMDA2NDQKLS0tIGEvZG9jL2F1dG9jb25mLnRleGkKKysrIGIvZG9j
L2F1dG9jb25mLnRleGkKQEAgLTE2MjcyLDI1ICsxNjI3Miw1NCBAQCBGaWxlIG5hbWVzIGFy
ZSBjYXNlIGluc2Vuc2l0aXZlLCBzbyBldmVuIG5hbWVzIGxpa2UKIEBzZWN0aW9uIFNoZWxs
IFBhdHRlcm4gTWF0Y2hpbmcKIEBjaW5kZXggU2hlbGwgcGF0dGVybiBtYXRjaGluZwogCi1O
b3dhZGF5cyBwb3J0YWJsZSBwYXR0ZXJucyBjYW4gdXNlIG5lZ2F0ZWQgY2hhcmFjdGVyIGNs
YXNzZXMgbGlrZQotQHNhbXB7WyEtYWVpb3VdfS4gIFRoZSBvbGRlciBzeW50YXggQHNhbXB7
W14tYWVpb3VdfSBpcyBzdXBwb3J0ZWQgYnkKLXNvbWUgc2hlbGxzIGJ1dCBub3Qgb3RoZXJz
OyBoZW5jZSBwb3J0YWJsZSBzY3JpcHRzIHNob3VsZCBuZXZlciB1c2UKLUBzYW1we159IGFz
IHRoZSBmaXJzdCBjaGFyYWN0ZXIgb2YgYSBicmFja2V0IHBhdHRlcm4uCitQb3J0YWJsZSBw
YXR0ZXJucyBzaG91bGQgYXZvaWQgdGhlIGZvbGxvd2luZyBjb25zdHJ1Y3RzOgogCi1PdXRz
aWRlIHRoZSBDIGxvY2FsZSwgcGF0dGVybnMgbGlrZSBAc2FtcHtbYS16XX0gYXJlIHByb2Js
ZW1hdGljIHNpbmNlCi10aGV5IG1heSBtYXRjaCBjaGFyYWN0ZXJzIHRoYXQgYXJlIG5vdCBs
b3dlci1jYXNlIGxldHRlcnMuCitAaXRlbWl6ZSBAYnVsbGV0CitAaXRlbQorQSBicmFja2V0
IGV4cHJlc3Npb24gbGlrZSBAc2FtcHtbYS16XX0gb3V0c2lkZSB0aGUgQyBsb2NhbGUuCitU
aGlzIHBhdHRlcm4gbWF5IG1hdGNoIGNoYXJhY3RlcnMgdGhhdCBhcmUgbm90IGxvd2VyLWNh
c2UgbGV0dGVycy4KK091dHNpZGUgdGhlIEMgbG9jYWxlLCB1c2UgQHNhbXB7W1s6bG93ZXI6
XV19IGluc3RlYWQsCitvciB0byBtYXRjaCBqdXN0IGxvd2VyLWNhc2UgQVNDSUkgbGV0dGVy
cyB1c2UKK0BzYW1we1thYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5el19LgorCitAaXRlbQor
QSBicmFja2V0IGV4cHJlc3Npb24gc3RhcnRpbmcgd2l0aCBAc2FtcHtefS4KK0ZvciBleGFt
cGxlLCBAc2FtcHtbIS1hZWlvdV19IGlzIHBvcnRhYmxlLCBidXQgQHNhbXB7W14tYWVpb3Vd
fSBpcyBub3QuCiAKLVBhdHRlcm5zIHdpdGggYnJhY2VzIGFyZSwgYWx0aG91Z2ggbm90IHNw
ZWNpZmllZCBieSBQT1NJWCwgc3VwcG9ydGVkCi1ieSBtb3N0IHNoZWxscy4gIE5vdCBzbyBi
eSBBSVggNy4zIEBjb21tYW5key9iaW4vc2h9LCB0aG91Z2g6CitAaXRlbQorV2hlbiBtYXRj
aGluZyBmaWxlIG5hbWVzLCBhIHBhdHRlcm4gY29udGFpbmluZyBAc2FtcHsqfSwgQHNhbXB7
P30gb3IKK0BzYW1we1suLi5dfSB0aGF0IG1pZ2h0IG1hdGNoIHRoZSBmaWxlIG5hbWVzIEBz
YW1wey59IG9yIEBzYW1wey4ufS4KK0ZvciBleGFtcGxlIEBzYW1wey4qfSBtaWdodCBtYXRj
aCBAc2FtcHsufSBhbmQgQHNhbXB7Li59LCBidXQgaXQgbWlnaHQgbm90LgorCitAaXRlbQor
QW55IG9mIHRoZSBmb2xsb3dpbmcgY2hhcmFjdGVycywKK3VubGVzcyBxdW90ZWQgb3IgZXNj
YXBlZCBvciBpbiBhIGJyYWNrZXQgZXhwcmVzc2lvbjoKIAogQGV4YW1wbGUKLSQgQGtiZHts
cyAtMSBzZXF1ZW5jZTAwMC5jIHNlcXVlbmNlOTk5LmN9Ci1zZXF1ZW5jZTAwMC5jCi1zZXF1
ZW5jZTk5OS5jCi0kIEBrYmR7bHMgLTEgc2VxdWVuY2VAezAwMCw5OTlAfS5jfQotbHM6IDA2
NTMtMzQxIFRoZSBmaWxlIHNlcXVlbmNlQHswMDAsOTk5QH0uYyBkb2VzIG5vdCBleGlzdC4K
KyEgIyAlID0gWyBdIF4gQHsgQH0gfgogQGVuZCBleGFtcGxlCiAKK0FuIHVuZXNjYXBlZCBA
c2FtcHtbfSB0aGF0IGRvZXMgbm90IGludHJvZHVjZSBhIGJyYWNrZXQgZXhwcmVzc2lvbiBp
cworcHJvYmxlbWF0aWMgYmVjYXVzZSwgZm9yIGV4YW1wbGUsIEBzYW1we2EqW30gbWlnaHQg
bWF0Y2ggdGhlIGZpbGUgbmFtZQorQHNhbXB7YWJjW30sIGJ1dCBpdCBtaWdodCBub3QuCisK
K0N1cmx5IGJyYWNlcyBhcmUgcHJvYmxlbWF0aWMgYmVjYXVzZSBQT1NJWCBhbGxvd3MgYnV0
IGRvZXMgbm90IHJlcXVpcmUKK2JyYWNlIGV4cGFuc2lvbi4gIEZvciBleGFtcGxlLCB0aGUg
c2hlbGwgY29tbWFuZCBAc2FtcHtlY2hvIGFAe2IsYyxkQH1lfQorb3V0cHV0cyBAc2FtcHth
YmUgYWNlIGFkZX0gd2l0aCBCYXNoLCBidXQgQHNhbXB7YUB7YixjLGRAfWV9IHdpdGggRGFz
aC4KKworQGl0ZW0KK0JhY2tsYXNoZXMgaW4gYnJhY2tldCBleHByZXNzaW9ucywgdW5sZXNz
IGRvdWJsZWQuCitGb3IgZXhhbXBsZSwgQHNhbXB7W1xcXl19IGlzIHBvcnRhYmxlLCBidXQg
QHNhbXB7W1xeXX0gaXMgbm90LgorCitAaXRlbQorQW4gdW5lc2NhcGVkIGJhY2tzbGFzaCBh
dCBwYXR0ZXJuIGVuZC4KKworQGl0ZW0KK0EgTlVMIGJ5dGUuCitNb3JlIGdlbmVyYWxseSwg
YSBOVUwgYnl0ZSBzaG91bGQgbmV2ZXIgYXBwZWFyIGFueXdoZXJlCitpbiBhIHBvcnRhYmxl
IHNoZWxsIHNjcmlwdC4KK0BlbmQgaXRlbWl6ZQorCiBAbm9kZSBTaGVsbCBTdWJzdGl0dXRp
b25zCiBAc2VjdGlvbiBTaGVsbCBTdWJzdGl0dXRpb25zCiBAY2luZGV4IFNoZWxsIHN1YnN0
aXR1dGlvbnMKLS0gCjIuNDguMQoK

--------------HZOw65kZzbtWfLFkypHP0azo--