退格在 sqlplus 命令行中不起作用
Posted
技术标签:
【中文标题】退格在 sqlplus 命令行中不起作用【英文标题】:Backspace doesn't work in sqlplus command line 【发布时间】:2014-04-24 12:13:53 【问题描述】:在我的 sqlplus (for oracle) 命令行中,退格不起作用。如何配置 sqlplus 以使用退格从命令行删除字符?我不经常使用sqlplus命令行,只是为了对我的数据库进行快速干预,对我需要使用的次数来说是非常危险的。
亲切的问候。谢谢
【问题讨论】:
ctrl-h 通常在我运行 sqlplus 的大多数 Unix 上用作退格键。 ctrl + backspace 在 RHEL 上和我一起工作 【参考方案1】:按照here 的说明,我能够执行以下操作并使其正常工作:
-
在终端输入
stty erase
按键盘上的CTRL+v
按键盘上的Backspace Key
(当我这样做时,它会将^H
放在一行中,所以我的最后一行看起来像stty erase ^H
)
按回车
现在,如果我启动 sql plus,我可以使用退格键删除输入错误的字符。
【讨论】:
它在 RHEL 6.5 中工作。谢谢。将其添加到 /etc/profile 以使其每次都能正常工作。 再次感谢。我看到这个并点击投票,它说我已经在 2016 年投票了。当时这是一个很好的答案,现在是一个很好的答案。【参考方案2】:你在哪个平台上工作?
如果是 linux,请查看this section of a wikipedia article on the bash 了解一些键盘快捷键。当您从 shell (bash) 调用 sqlplus 时,您应该能够使用相同的快捷方式导航 sqlplus 命令行。具体来说,ctrl-b
将是退格键。
【讨论】:
这是 Solaris (Unix) 谢谢 您使用的是 korn shell (ksh) 吗? This SO post's 接受的答案显示了如何使退格键(和其他一些键)工作,这也应该传递给 sqlplus。根据this cheat sheet,z shell 的行为类似于 bash。【参考方案3】:感谢您的建议。在其他论坛中,我发现了这种解决方法:
我使用 stty -a 来查看 I/O 设置:我可以看到擦除设置为 ^?
因此,为了设置用于删除字符的退格,我设置了 stty erase ^H,然后为会话工作。
谢谢。
【讨论】:
以上是关于退格在 sqlplus 命令行中不起作用的主要内容,如果未能解决你的问题,请参考以下文章
Argparse 教程示例在 Windows 命令行中不起作用