KornShell

KornShell（ksh）是一款由大卫·科恩（英语：David Korn (computer scientist)）于二十世纪八十年代早期在贝尔实验室开发的Unix shell，并在1983年7月14日的USENIX年度技术会议（英语：USENIX Annual Technical Conference）上发布。起初此软件基于Bourne shell的源代码编写。其他贡献者有贝尔实验室的开发者，如迈克·维奇（Mike Veach）和帕特·沙利文（Pat Sullivan）；他们分别编写了Emacs和vi风格的行编辑模式代码。KornShell向后兼容Bourne shell，同时还根据贝尔实验室用户的需求添加了诸多C shell的功能。 KornShell实现了POSIX.2，同时拥有壳层及实用工具、命令解释器（IEEE Std 1003.2-1992.）。KornShell与传统的Bourne shell的主要差别有： 根据C shell所设计的作业控制（英语：Job control (Unix)）、命令别名及命令历史特性。作业控制功能于1989年才添加至Bourne Shell。 提供基于vi、Emacs和XEmacs的三种命令行编辑风格。 关联数组及内置的浮点运算操作（仅在ksh93版KornShell中可用）。 内置指令的动态可扩展（截至ksh93版本）。 KornShell起初是一款专有软件。2000年，其源代码以AT&T独有的许可发布；但在2005年年初，93q版本使用Eclipse公共许可证发布。由于KornShell起初为私有授权软件，在那时的人们创造了自由开源的替代品（pdksh、mksh、GNU bash及zsh）。 KornShell被收录进了AT&T软件技术（AST）开源软件集。 KornShell的原始版本（ksh88）被当做POSIX.2、壳层及实用工具、命令解释器（IEEE Std 1003.2-1992.）的基础。 部分供应商有时会提供其自己根据老版本ksh88改编的变体，有时还会在其基础上添加扩展。ksh93现仍被作者维护，并通过在其后添加字母的方式命名发布版本；截至2017年1月16日 (2017-01-16)[update]的最新版本为ksh93u+（ksh93u及ksh93t+的更新版）；ksh93v仍处于测试阶段（截至2017年1月16日 (2017-01-16)[update]）。 作为“桌面版KornShell”（dtksh），ksh93作为通用桌面环境的一部分发布。此版本同时提供了对Motif挂件的壳层级映射。它的目的是成为Tcl/Tk的竞争对手。 原版KornShell（ksh88）成为了AIX第四版的默认壳层，但同时也可使用ksh93。 UnixWare（英语：UnixWare） 7中既包括ksh88，也包括ksh93。默认的Kornshell版本为ksh93（/usr/bin/ksh），老版本则在/usr/bin/ksh88下可用。UnixWare同时在安装了CDE的情况下提供{{mono|dtksh}。 下列为多个与KornShel相关的软件产品： dtksh – ksh93的分支，为CDE的一部分。 tksh – ksh93的分支，提供对Tk部件工具箱的访问。 oksh – OpenBSD风味KornShell的Linux版分支，为DeLi Linux（英语：DeLi Linux）的默认壳层。 mksh – KornShell语言的自由软件实现，为pdksh的分支。其起初为MirOS BSD（英语：MirOS BSD）开发，以宽松的授权条款发布（MirOS许可证（英语：MirOS Licence））。除了用在BSD上外，此变体还替代了Debian上的pdksh，更是Android的默认壳层。 SKsh – AmigaOS风味的版本，提供了多个Amiga的特有功能（如ARexx（英语：ARexx）互用性） MKS Inc.（英语：MKS Inc.）的MKS Korn shell – 来自用于UNIX的微软Windows服务（英语：Microsoft Windows Services for UNIX）（SFU）对KornShell语言的专有实现（版本2.0及以下）；据大卫·科恩所述，MKS Korn shell与1998年时的Kornshell不完全兼容。在SFU版本3.0中，微软使用Interix（英语：Interix）中的POSIX.2兼容版壳层替换了MKS Korn shell。 大卫·科恩的Unix兼容包UWIN（英语：UWIN）中含有KornShell。 自由软件主题 计算机壳层对比（英语：Comparison of computer shells） Unix实用程序列表 测试（英语：test (Unix)）软件 Ron Gomes. Toronto USENIX Conference Schedule (tentative). Newsgroup: net.usenix. Jun 9, 1983 [Dec 29, 2010]. （原始内容存档于2013-06-02）.  Guy Harris. csh question. Newsgroup: net.flame. Oct 10, 1983 [Dec 29, 2010]. （原始内容存档于2013-06-02）.  package changes from 2013-05-24 to 2013-06-01. 14 February 2015 [10 December 2018]. （原始内容存档于2015-02-14）.  Archived copy. [2018-12-10]. （原始内容存档于2018-11-14）.  Archived copy. [2010-06-10]. （原始内容存档于2016-03-30）.  MirBSD Korn Shell. Mirbsd.org. [10 December 2018]. （原始内容存档于2015-08-01）.  Korn, David G., ksh - An Extensible High Level Language, Proceedings of the USENIX 1994 Very High Level Languages Symposium (USENIX Association), October 26, 1994 [February 5, 2015], （原始内容存档于2020-08-23）, Instead of inventing a new script language, we built a form entry system by modifying the Bourne shell, adding built-in commands as necessary.  Bolsky, Morris I.; Korn, David G. Acknowledgements. The KornShell Command and Programming Language. Englewood Cliffs, NJ: Prentice Hall. 1989: xii. ISBN 0-13-516972-0.  traditional Bourne shell family / history and development. In-ulm.de. [10 December 2018]. （原始内容存档于2020-04-14）.  This is the AT&T Software Technology ast software download site from AT&T Research. The AT&T AST OpenSource Software Collection provides an overview and Practical Reusable UNIX Software... Github.com. 10 December 2018 [10 December 2018]. （原始内容存档于2020-10-31）.  Bill Rosenblatt; Arnold Robbins. Learning the Korn Shell 2. O'Reilly Media, Inc. 2002: viii–ix [2019-05-04]. ISBN 978-0-596-00195-7. （原始内容存档于2020-08-04）.  J. Stephen Pendergrast. Desktop KornShell graphical programming. Addison-Wesley. 1995: 359 [2019-05-04]. ISBN 978-0-201-63375-7. （原始内容存档于2020-08-04）.  Casey Cannon; Scott Trent; Carolyn Jones. Simply AIX 4.3. Prentice Hall PTR. 1999: 21. ISBN 978-0-13-021344-0.  IBM Knowledge Center. Ibm.com. [10 December 2018]. （原始内容存档于2019-08-09）.  IBM Knowledge Center. Ibm.com. [10 December 2018]. （原始内容存档于2019-08-09）.  UNIX95 conformance. Uw714doc.sco.com. [10 December 2018]. （原始内容存档于2020-08-02）.  Archived copy. [2014-07-28]. （原始内容存档于2014-07-28）.  David Korn Tells All. Slashdot. [2009-10-22]. （原始内容存档于2009-06-16）.  Jerry Feldman — USENIX NT/LISA NT conference attendee. Lists.blu.org. [2009-10-22]. （原始内容存档于2012-02-26）.  Windows Services for UNIX Version 3.0. Technet.microsoft.com. [2009-10-22]. （原始内容存档于2017-08-26）.  Anatole Olczak. The Korn shell: Unix and Linux programming manual. Addison-Wesley Professional. 2001: 4 [2019-05-04]. ISBN 978-0-201-67523-8. （原始内容存档于2020-08-04）.  Morris I. Bolsky; David G. Korn. The new KornShell command and programming language. Prentice Hall PTR. 1995. ISBN 978-0-13-182700-4.  David G. Korn, Charles J. Northrup and Jeffery Korn The New KornShell—ksh93 （页面存档备份，存于互联网档案馆）, Linux Journal（英语：Linux Journal）, Issue 27, July 1996 Korn shell主页（AT&T ksh）（页面存档备份，存于互联网档案馆） AT&T软件技术的（AST）GitHub页 （页面存档备份，存于互联网档案馆），其中有ksh源代码。 KSH官方邮件列表 （页面存档备份，存于互联网档案馆）（ast-developers及ast-users） ksh93 man page. [2006-08-11]. （原始内容存档于2013-06-05）.  ksh88 man page. [2019-05-04]. （原始内容存档于2015-11-05）.  Public Domain Korn shell (pdksh) MirBSD Korn Shell（mksh）（页面存档备份，存于互联网档案馆） mksh(1) – MirOS BSD i386通用命令（General Commands）手册页