Wed Jun 28 16:51:42 1989 Brian Fox (bfox at aurel)
* New directory: LIB contains readline and history stuff,
and is Make-able on its own. Also contains its own
ChangeLog
* history.c: removed shell dependent stuff, made into standalone
library.
Tue Jun 27 13:05:54 1989 Brian Fox (bfox at aurel)
* readline.c: removed shell dependent stuff.
* New file: bashline.c contains all of the shell specific
readline material in an attempt to begin using the
readline stuff as a library.
Mon Jun 26 13:35:16 1989 Brian Fox (bfox at aurel)
[...]
* readline.c, jobs.c
Make commands that do not complete sucessfully restore the
tty state to whatever it was before the command was executed.
readline
bash
由同一作者一起实现,bash
并在流行的 shell 中使用,大多数情况下只有bash
.该
readline
库是由 bash 产生的。bash
1.02的ChangeLog
文件有:zsh
在 1990 年的第一个 1.0 版本中使用了 's readline 的修改版本,bash
因为它自己的行编辑器还没有准备好,但在 1991 年四个月后在 2.0 中切换到它自己的版本。从README
1.0 中的文件:基于 Ash 的 shell 通常使用 BSD 的 libedit(如果
dash
它在编译时通常不启用,因为dash
它仅用于运行脚本,而不是作为交互式 shell)。Byron Rakitzis的 Unix V10 / Plan9
rc
shell 的克隆让您在编译时可以选择行编辑器:GNUreadline
、Simmule Turnereditline
和 Gert-Jan Vonsvrl
。第一个版本只提供 readline。es
并且akanga
,基于rc
提供readline
vs的选择editline
。busybox 有自己的行编辑器,由它的
hush
和ash
基于的 shell 以及其他小程序(例如它的bc
、ed
、fdisk
.readline
很棒,因为它提供了一个行编辑器,可以(并且是)在许多不同的工具中使用,提供一致性,但是,虽然它可能是功能最丰富的通用行编辑库之一,但它相对有限你可以用它做什么。它也是根据 GPL 许可的,因此只能用于根据GPL 许可或兼容的软件。包括 ksh、pdksh 和衍生工具、tcsh、zsh、fish 或 yash 在内的大多数 shell 都有自己的行编辑器,通常更高级。ksh 的行编辑器是在 1983 年前后编写
bash
的,这就是 bash 的 readline 主要复制的接口。pdksh
行tcsh
编辑器也早于 bash 和 readline。vi
POSIX 指定基于 ksh 的 -style 行编辑器。emacs
POSIX 没有指定这一点,因为 Richard Stallman(GNU 的主要作者,emacs
顺便还提出了“POSIX”名称)反对它¹。请注意,您有充分的理由希望在支持它的终端编辑器或行编辑器中启用括号粘贴模式。请参阅:我如何保护自己免受这种剪贴板滥用?.
¹ 见shell emacs 命令行编辑模式最终被省略了,因为很明显 KornShell 版本和与 GNU 系统一起分发的编辑器在某些方面存在分歧。emacs 的作者要求要么删除 POSIX emacs 模式,要么有大量未指定的条件。尽管 KornShell 作者同意考虑更改以使 shell 保持一致,但标准开发人员当时决定推迟规范。当时,假设后续草案会在可接受的定义上趋同,但这并没有发生,而且似乎没有这样做的动力。在任何情况下,实现都可以根据用户最熟悉的编辑器的确切模型免费提供额外的命令行编辑模式。”在POSIX规范的 RATIONALE 部分
sh
。