你不知道。

你不知道。

或者可以逐字逐句地移动输入的行,使用快捷方式例如ESCB

这不起作用或者据我从谷歌搜索中了解到,这与 readline 支持有关,但是我还没有看到任何地方提到如何启用对 dash 的支持。

这就是我的问题的核心:如何启用 dash 的直线导航

答案1

如果你确实想要dash命令行编辑和历史记录,你可以使用rlwrap

rlwrap dash

建议:

rlwrap -cmD2 dash

要使用rlwrap,您必须:

sudo apt-get install rlwrap

答案2

简短的回答是:

你不知道。

dash是 Almquist Shell ( ) 的直接后代ashash从未提供行编辑支持,也没有dash。 Busyboxash有,所以如果你ash出于某种原因必须使用变体有行编辑等功能,请使用 Busybox ash。没有人会费心添加 readline 支持,因为dash的主要用途是运行 shell 脚本。

当然,除非您愿意编写对 readline 的支持代码dash,并自己维护这样的补丁……

长话短说就是:

使用以下方式编译libedit

如果你看看dash的手册页

-V vi           Enable the built-in vi(1) command line editor
                (disables -E if it has been set).

-E emacs        Enable the built-in emacs(1) command line editor
                (disables -V if it has been set).

这些仅在dash使用 编译时才有效--with-libedit。它不是,在Ubuntu,也不,显然,在 Debian 中

你可以这样构建它:

git clone https://git.kernel.org/pub/scm/utils/dash/dash.git
cd dash 
./autogen.sh 
./configure --with-libedit 
make

然后运行:

src/dash -E

您应该能够使用箭头键来编辑当前命令。

相关内容