是否可以保存`bc` 命令行历史记录?

Kam*_*Cuk 12 gnu readline bc

bash有一个方便的文件.bash_history,它保存命令的历史记录,并且在下次执行bash历史记录时填充保存的命令。

是否可以以bc相同的方式将命令历史记录保存到文件中,然后在启动时加载它以便保留 bc 历史记录?

我尝试阅读GNU bc 手册,它提到了readlinelibedit。从ldd /usr/bin/bc我看到我的使用readline,并readline具有write_historyread_history功能。这个功能是在里面实现的bc还是我需要修补的bc

Gil*_*il' 18

如果您对程序内置的命令行编辑功能不满意,可以通过rlwrap运行它。这是一个命令行处理器(一个REPL)的包装器,它允许您在发送之前编辑每一行。Rlwrap 使用 readline 库并为每个命令单独保存历史记录。

运行rlwrap bc不会为您做任何事情,因为 rlwrap 检测到您bc想要进行自己的命令行编辑,因此 rlwrap 会自行关闭。由于您确实需要 rlwrap 的命令行编辑功能而不是底层命令的,请运行

rlwrap -a bc
Run Code Online (Sandbox Code Playgroud)

命令历史将保存在~/.bc_history.

依赖 rlwrap 而不是使用程序自己的 readline 集成的主要缺点是 rlwrap 不能执行任何上下文相关的完成。例如,python顶层完成已知变量和字段,但rlwrap python不能这样做。由于 bc 似乎没有任何自定义完成,因此rlwrap -a bc不会失去 bc 的功能。