24小时热门版块排行榜    

查看: 250  |  回复: 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 的主题更新
☆ 无星级 ★ 一星级 ★★★ 三星级 ★★★★★ 五星级
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[基金申请] 欢迎发来filecode的Mz6后的代码验证其规律 +55 医学老男孩 2026-08-13 123/6150 2026-08-19 23:44 by stan_et
[基金申请] 时间戳变了,能看出什么问题? +12 基诺咪客 2026-08-17 16/800 2026-08-19 22:04 by kk 的小木虫
[基金申请] filecode,4个jtjc了 +11 ziyangfang 2026-08-19 13/650 2026-08-19 21:28 by aasahr
[教师之家] 为什么余额宝的年化利率越来越低?主要原因有哪些? +5 瞬息宇宙 2026-08-15 5/250 2026-08-19 20:23 by super2002521
[基金申请] 今天放榜吗? +14 布布和一二 2026-08-19 15/750 2026-08-19 18:07 by gltch
[基金申请] 2027广东省杰青 +4 奶牛小黑 2026-08-15 10/500 2026-08-19 11:02 by wanfengnew
[基金申请] 朋友圈看到的 +6 wangzilk 2026-08-18 8/400 2026-08-19 10:55 by Haru815
[基金申请] 快农历七夕节了,轻松一下,男人悄悄话,女施主请不要进来。 +6 Tide man 2026-08-14 7/350 2026-08-19 09:56 by ZJTJZ
[基金申请] 什么时候开奖? +6 CrisMessi 2026-08-18 6/300 2026-08-19 08:06 by Equinoxhua
[基金申请] 重要消息,中午系统在维护 +10 yuleib84 2026-08-18 11/550 2026-08-19 07:30 by 羽毛枫f
[基金申请] 明天放榜? +5 Shxjjxjkx 2026-08-18 5/250 2026-08-18 18:14 by -大大大大大-
[论文投稿] 投稿咨询 +4 wwm09 2026-08-17 6/300 2026-08-18 15:36 by wwm09
[基金申请] 时间戳又变了8-15 +14 archvillain 2026-08-15 26/1300 2026-08-18 13:37 by phantomgost
[基金申请] 今天维护系统维护 祝所有人 高中 +8 gjjjzhong 2026-08-18 9/450 2026-08-18 13:01 by 家与远方
[基金申请] 哪位老哥知道今年的国自然具体哪一天放榜? +13 Ldrop2023 2026-08-13 16/800 2026-08-18 12:25 by 淀粉搬运工
[基金申请] 93BebMhtakh前后11位开头都是大写 +4 且听虎啸 2026-08-17 5/250 2026-08-18 00:49 by 蔡棒棒菂
[基金申请] 感觉是下周放榜了 +6 angus9576 2026-08-17 11/550 2026-08-17 23:57 by angus9576
[基金申请] 今天系统多次维护,明天很可能放榜! +8 zju2000 2026-08-16 9/450 2026-08-17 12:20 by lmz0216
[精细化工] 招聘 金属平磨液,抛光液研发工程师 +3 小天0311 2026-08-14 3/150 2026-08-16 07:31 by H9PLUS
[基金申请] 各位道友,我要去昆明玩几天,回来见。 +7 Tide man 2026-08-14 8/400 2026-08-15 01:11 by arzu_hma
信息提示
请填处理意见