答案1
如果你确实想要dash
命令行编辑和历史记录,你可以使用rlwrap
:
rlwrap dash
建议:
rlwrap -cmD2 dash
要使用rlwrap
,您必须:
sudo apt-get install rlwrap
答案2
简短的回答是:
你不知道。
dash
是 Almquist Shell ( ) 的直接后代ash
。ash
从未提供行编辑支持,也没有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
您应该能够使用箭头键来编辑当前命令。