dash 的哪些部分不属于 POSIX 标准?

dash 的哪些部分不属于 POSIX 标准?

我知道 dash 非常严格地遵守 POSIX 标准,但我知道它不是 100.00% 严格的 POSIX,没有任何额外的东西。据我所知,最接近/完全符合 POSIX 标准的 shell 是设置了 POSIXly 正确标志的 mrsh 或 yash。

现在我想确切地知道 POSIX 标准中没有指定 dash 的哪些部分/功能(无需阅读整个POSIX.1-2017以及 dash 的源代码)。

我已经尝试过广泛的谷歌搜索(就我对这个主题的了解而言),但谁会想到,这完全是关于 bash 和 dash 之间的差异以及 dash 如何非常符合 POSIX 等等的结果。

答案1

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支持输出ESC printf\e
  • [/test支持-ef, -nt, -ot, <,>运算符
  • ulimit支持 POSIX 指定的更多选项
  • 处理MAIL, MAILCHECK,MAILPATH变量。

相关内容