不是真正的答案,而是对普通 ksh 用户的 FYI。
编辑 2019-05-12(以下以粗体进行了少量编辑,其他信息现在stricken)。
为了澄清这里的几个 cmets,在典型的供应商安装(非 Linux(也许它们也是?))中有 2 个 ksh 可用。
Solaris 和 AIX 具有 ksh 和 ksh93(其他供应商可能也是如此)。基础 ksh 也称为 ksh88。 Ksh93 在The New Kornshell Command and Programming Language, 1995中描述
具有真正 ksh(不是 pdksh)的 Linux 系统,大多使用名为 ksh 的 ksh93。
最后,为了进一步混淆事情,不要让 1995 年的发布日期欺骗你,ksh 继续在 正在由 AT&T 的 David Korn 和 Glen Fowler 积极开发直到 2012 年? 版本每年发布 2-3 次。一些 Linux 版本选择了较新的版本。
这些较新的版本具有非常先进的功能
(大部分内容来自 AT&T research UWIN page. search for the link 'notes and changes' (死链接))
- 像 c 结构一样组成的复合变量(没有 c 数据类型,只有排版 decls)(一位用户声称有一个 500 Meg 的内存结构)
- 具有完整 C99 算术的双精度浮点算术..数字 Inf 和 NaN 可用于算术表达式。
- TAB-TAB 补全会生成一个编号的补全列表 ...
- 支持处理/处理多字节语言环境(例如,en_US.UTF-8、hi_IN.UTF-8、ja_JP.eucJP、zh_CN.GB18030、zh_TW.BIG5 等)...
- /dev/(tcp|udp|sctp)/host/sevrice 现在处理 IPv6 地址 ...
- ... 使用新的重定向运算符通过偏移量或内容查找文件。
- 新的 --showme 选项允许脚本的某些部分表现得如同指定了 -x 一样,而其他部分则照常执行。 ...
- 添加了 [[...]] 运算符 =~,它将字符串与扩展的正则表达式进行比较 ....
- 内置的 printf(1) 已扩展为支持 = 标志以使字段居中...(和其他)...
- 视图路径
- “大多数实用程序由 AT&T 开发,符合 POSIX.2 和 X/Open。”
(注意上面的...s,通常表示删除了一些限定信息)
Korn 和 Fowler 已经 还为使用 Mingw 或 Cygwin 等系统的人们开发了一个高级环境 UWIN(Windows 的 Unix),值得单独发表一篇文章。 UWIN 的缺点是,
- 与您在最喜欢的 Linux 中找到的实用程序集不同。
- 另一个几乎必须使用 MS Visual C 的文件编译环境(据说通过 Mingw 的 gcc 支持正在进行中),
- 一个非常小的支持社区,
-
AT&T 通用公共许可证 V 1.0Eclipse Public License* 不是 GNU。
请参阅 UWin main page (死链接):不幸的是,已过时,最好在上面的 dnld 链接中查找。嗯,这好多了 Glenn Fowler's FAQ for UWin(也死了,Time Machine 有人吗?)。
我希望这会有所帮助!
编辑 2019-05-12 。死链接的原因是什么?
David Korn and Glen Fowler Laid Off (at AT&T, 2012?
后来有消息称他们在 Google 工作。我无法证实这一点,所以将其视为一个古老的谣言。
并查看Is Ksh93 dead?
ast git-hub site 似乎仍有一些活动。 ast 是包含 ksh93 的总体包。您可以在那里获取新的源代码并进行编译。
这是项目描述的文本。 (README.md 中有更多信息)。
KSH93
此存储库包含 AT&T 软件技术 (AST) 工具包
来自 AT&T 研究。截至 2017 年 11 月,开发重点一直是
转移到 ksh(或 ksh93)命令和所需的支持代码
构建它。
AST项目的非ksh代码不再活跃
保持。如果您对非 ksh 代码感兴趣,请参见下文
有关哪些分支包含完整 AST 代码库的详细信息。
该项目仅支持编译器和底层的系统
硬件是 ASCII 兼容的。这包括 IBM zSeries 上的 Linux,但
不是 z/OS。对 EBCDIC 的新生的、不完整的支持已经
删除。请参阅问题 #742。
*
EPL 取代了 AT&T 的原始 CPL。