POSIX shell(dash)是否正式支持命名字符类?

POSIX shell(dash)是否正式支持命名字符类?

我知道 bash 支持所谓的“命名字符类”模式,例如 [:alnum:]、[:alpha:]、[:ascii:] 和 [:digit:],但 POSIX shell(在 Ubuntu 中通常是 dash)呢?至少在最新的 LTS Ubuntu 发行版(20.04)中,“man dash”根本没有提到这些字符类,这表明不支持它们。但是,我的测试证明 dash 至少部分和/或非正式地支持它们。这里有一个简短的例子来证明我的观点:

dash #invoke the shell
mkdir 1 #create a directory whose name is a single digit
cd [[:digit:]] #change current directory to one whose name consists of a single digit

假设“1”是当前目录中唯一一个名称由单个数字组成的子目录,则上面的最后一行将成功匹配“1”并将当前目录更改为该目录。那么,dash 中对命名字符类的支持状态如何?如果确实支持它们,为什么在 dash 手册中跳过它们?如果它们不打算支持,为什么我的示例可以工作?这是手册中的缺陷,还是最近版本的 dash 中一些未记录的功能/扩展?

相关内容