24小时热门版块排行榜    

北京石油化工学院2026年研究生招生接收调剂公告
查看: 215  |  回复: 2
【奖励】 本帖被评价2次,作者jove1782增加金币 1
当前主题已经存档。

jove1782

木虫 (正式写手)


[资源] 发现 bash 某些版本的一个 bug (转发)

其实在 3 月初就发现了,只是没有来得及记过来。

bash 继承了 Bourne Shell 的众多特性,其一就是文件名通配符:*、?、[] 等。例如列出当前目录下所有文件名由三个大写字母的文件,就可以用命令
    ls [A-Z][A-Z][A-Z]
假如在当前目录下有 ABC AbC ABc aBC aBc AbC abc 这几个文件,那么上边命令执行的结果是只列出
    ABC
来。这个对于我见过的每个版本的 bash 当 LANG=C 时都没有问题,但是对于好多常见的 bash 版本,当环境变量 LANG 的值不是 C 或 POSIX 时——比如 LANG=zh_CN.GBK 或者 LANG=en_US.UTF-8 等,这时再在有上述几个文件的目录中执行命令 ls [A-Z][A-Z][A-Z] 命令时,会得到错误的结果——它列出的不只是由三个大写字母构成的文件名!!除了 ABC 外还会列出 AbC 什么的。

后来在多个环境中测试,发现至少以下环境中的 bash 存在这个 bug:

Red Hat Enterprise Linux AS release 4 (Nahant Update 5)
    GNU bash, version 3.00.15(1)-release (i386-redhat-linux-gnu)
    Copyright (C) 2004 Free Software Foundation, Inc.

Debian 4.0r1
    GNU bash, version 3.1.17(1)-release (i486-pc-linux-gnu)
    Copyright (C) 2005 Free Software Foundation, Inc.

Unix Center 的
Debian 4.0 (Loongson)
    GNU bash, version 3.1.17(1)-release (mipsel-unknown-linux-gnu)
    Copyright (C) 2005 Free Software Foundation, Inc.

Unix Center 的
Fedora Core release 6 (Zod)
    GNU bash, version 3.1.17(1)-release (x86_64-redhat-linux-gnu)
    Copyright (C) 2005 Free Software Foundation, Inc.

Unix Center 的
Ubuntu 7.10 gutsy
    GNU bash, version 3.2.25(1)-release (x86_64-pc-linux-gnu)
    Copyright (C) 2005 Free Software Foundation, Inc.

OpenSolaris 2008.05 snv_86_rc3 X86
    GNU bash, version 3.2.25(1)-release (i386-pc-solaris2.11)
    Copyright (C) 2005 Free Software Foundation, Inc.

上述环境中的 bash 版本有 3.00.15(1)、3.1.17(1)、3.2.25(1);

同时发现至少以下环境中的 bash 不存在这个 bug:

Slax 6.0.0-rc8 / Slackware 12.0.0
    GNU bash, version 3.1.17(2)-release (i486-slackware-linux-gnu)
    Copyright (C) 2005 Free Software Foundation, Inc.

SLAX 5.1.8.1 / Slackware 10.2.0
    GNU bash, version 3.1.17(2)-release (i486-slackware-linux-gnu)
    Copyright (C) 2005 Free Software Foundation, Inc.

Slackware 12.0.0
    GNU bash, version 3.1.17(2)-release (i486-slackware-linux-gnu)
    Copyright (C) 2005 Free Software Foundation, Inc.

Unix Center 的
Solaris 10 11/06 s10x_u3wos_10 X86
    GNU bash, version 3.00.16(1)-release (i386-pc-solaris2.10)
    Copyright (C) 2004 Free Software Foundation, Inc.

Unix Center 的
FreeBSD 6.2-RELEASE
    GNU bash, version 2.05b.0(1)-release (amd64-portbld-freebsd6.2)
    Copyright (C) 2002 Free Software Foundation, Inc.

上述环境中的 bash 版本有 3.1.17(2)、3.00.16(1)、2.05b.0(1)。

猜测可能跟 bash 的版本有关。不过不知道是不是已知 bug,也不知道需不要以及如何报告这个 bug。
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

ytu_cyc

木虫 (著名写手)


★★★ 三星级,支持鼓励

还没你这么精通bash。收藏着。。。
2楼2008-07-30 21:13:56
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 jove1782 的主题更新
☆ 无星级 ★ 一星级 ★★★ 三星级 ★★★★★ 五星级
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 297求调剂 +11 ljy20040718! 2026-04-03 12/600 2026-04-04 03:36 by -迷了路啊路
[考研] 求调剂,一志愿南京航空航天大学 ,080500材料科学与工程学硕 +8 @taotao 2026-04-03 8/400 2026-04-04 01:04 by userper
[考研] 283分材料与化工求调剂 +29 罗KAKA 2026-04-02 29/1450 2026-04-03 23:56 by userper
[考研] 311(085601)求调剂 +15 liziyeyeye 2026-03-28 16/800 2026-04-03 21:43 by qlm5820
[考研] 调剂 +5 asdasdassda 2026-04-03 6/300 2026-04-03 20:27 by 岸上的一条鱼
[考研] 343求调剂085601 +6 要努力学习x 2026-03-29 7/350 2026-04-03 19:49 by 百灵童888
[考研] 材料科学与工程339求调剂 +12 hyz0119 2026-03-31 13/650 2026-04-03 18:33 by ls刘帅
[考研] 一志愿华中农业071010,总分320求调剂 +7 困困困困坤坤 2026-04-02 7/350 2026-04-03 17:26 by Yuena_Wang
[考研] 321求调剂 +10 认真求上学 2026-04-02 10/500 2026-04-03 16:17 by lijunpoly
[考研] 266分,求材料相关专业调剂 +13 哇呼哼呼哼 2026-03-30 15/750 2026-04-03 15:24 by arrow8852
[考研] 工科341分调剂 +3 洛多罗 2026-04-03 3/150 2026-04-03 14:20 by 1753564080
[基金申请] 请问共同通讯和共同一作的认可度问题 10+4 psa1234 2026-04-01 10/500 2026-04-03 11:08 by Kittylucky
[考研] 326求调剂 +10 崽崽仔 2026-04-02 10/500 2026-04-03 09:08 by 帕尔马拉特
[考研] 材料专硕322分 +10 哈哈哈吼吼吼哈 2026-04-02 10/500 2026-04-02 21:46 by dongzh2009
[考研] 一志愿武汉理工0856,初试334 +3 26考研材料 2026-04-02 3/150 2026-04-02 21:22 by dongzh2009
[考研] 348求调剂 +11 zzzzyk123 2026-04-01 11/550 2026-04-02 16:52 by Wang200018
[考研] 346求调剂 +5 郑诚乐 2026-04-02 5/250 2026-04-02 16:38 by SZW_UJN
[考研] 【求调剂】新能源材料本科,一志愿211,初试321 +6 求调剂学校, 2026-04-02 6/300 2026-04-02 09:41 by 晴空210210
[考研] 08工科275求调剂,可跨考。 +5 AaAa7420 2026-03-31 5/250 2026-04-01 15:21 by 159357hjz
[考研] 081200-11408-276学硕求调剂 +4 崔wj 2026-03-31 4/200 2026-03-31 11:56 by jp9609
信息提示
请填处理意见