我知道 dash 非常严格地遵守 POSIX 标准,但我知道它不是 100.00% 严格的 POSIX,没有任何额外的东西。据我所知,最接近/完全遵守 POSIX 标准的 shell 是设置了 POSIXly 正确标志的 mrsh 或 yash。
现在我想确切地知道 POSIX 标准中没有指定 dash 的哪些部分/功能(无需阅读整个POSIX.1-2017和 dash 的源代码)。
我已经尝试过广泛的谷歌搜索(就我对这个主题的了解而言),但谁会想到,这完全是关于 bash 和 dash 之间的差异以及 dash 如何非常符合 POSIX 等等的结果。
dash以下是POSIX.1-2017 所指定的额外功能及其内置功能的清单的开始。
local(来自 1989 年的原始 Ash)。-V/-E选项作为-o vi,的别名-o emacs。-I作为别名-o ignoreeof(所有选项都有一个等效的单字母,因此可以在 中跟踪$-,您可以使用 使其本地化local)。-p/-o privileged选项。-l作为登录 shell 启动的选项echo支持该-n选项read支持一个-p prompt选项printf支持%f/e/E/g/G指令。echo支持printf输出\eESC。[/test支持-ef, -nt, -ot, <,>运算符ulimit支持 POSIX 指定的更多选项MAIL, MAILCHECK,MAILPATH变量。