如何从sqlline命令历史中重新执行指定命令?
在sqlline 1.9.0中重新执行历史命令的替代方法
我在sqlline 1.9.0里能用!history查看命令历史,示例如下:
0: jdbc:phoenix:> !history 139 16:45:44 SELECT DISTINCT BIOBANKSUBJECTID FROM VCF; ... 145 20:06:20 !/139 146 20:06:30 !rerun 139 147 20:07:00 !rerun !139
尝试过像Unix系统那样用!139重新执行对应历史命令,但该方式无效;!/139、!rerun 139这些命令也都失败了。除了复制粘贴,还有以下几种可行的方法:
- 上下箭头快速切换历史命令:直接按↑/↓箭头键就能浏览之前执行过的所有命令,找到目标命令后回车即可重新执行,这是sqlline最常用的历史命令复用方式。
- 尝试
!run <命令编号>语法:部分sqlline版本支持!run加命令编号的方式,比如执行!run 139,如果!rerun失效可以试试这个命令。 - 导出历史到文件再执行:先用
!history save my_history.sql把所有历史命令导出到本地文件,编辑文件保留需要的命令后,用!run my_history.sql执行该文件。
如果上述方法都不适用,可能是sqlline 1.9.0的版本限制,建议升级到1.10及以上版本,新版本对历史命令的支持更完善,已经兼容Unix风格的!n语法。
内容的提问来源于stack exchange,提问作者kc2001
相关产品推荐
相关产品推荐

