| 查看: 213 | 回复: 2 | |||
| 【奖励】 本帖被评价2次,作者jove1782增加金币 1 个 | |||
| 当前主题已经存档。 | |||
[资源]
发现 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。 |
» 猜你喜欢
重庆交大26年硕士生招生拟调剂通知已出!欢迎加入光子学微结构与器件课题组。
已经有0人回复
UJN物理学专业调剂
已经有12人回复
物理学I论文润色/翻译怎么收费?
已经有122人回复
北京纳米能源与系统研究所王中林院士/曹南颖研究员课题组招收2026硕士研究生1名
已经有0人回复
山西大同大学物理学硕士研究生招收调剂生
已经有0人回复
[调剂信息]211智能人工感知方向国家青年特聘专家课题组招收调剂研究生
已经有0人回复
[调剂信息]211智能人工感知方向国家青年特聘专家课题组招收调剂研究生
已经有0人回复
[调剂信息]211智能人工感知方向国家青年特聘专家课题组招收调剂研究生
已经有0人回复
一志愿物理所凝聚态物理352求调剂
已经有0人回复
0702一志愿吉大B区求调剂 本科期间发表一篇Sci
已经有0人回复
2楼2008-07-30 21:13:56














回复此楼