通过标准输入的箭头键
我正在尝试通过标准输入将箭头键发送到 bash:
cat | /bin/bash
然后我输入“echo hi”=> “hi”出现在控制台上(当然没有引号) 然后我按向上箭头键=> ^[[出现未找到命令
是否可以通过标准输入向程序发送箭头键?
我问的原因是:我想从另一个程序控制bash。我想将箭头键发送到 bash
I'm trying to send an arrow key via the stdin to the bash:
cat | /bin/bash
then i am typing "echo hi" => "hi" appears on the console (of course without the quotes)
then i press the arrow key up => ^[[A command not found appears
Is it possible to send an arrow key to an program via the stdin ?
The reason why i am asking is: I want to control the bash from another programm. I would like to send arrow keys to the bash
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您真正应该做的是创建一个伪 tty 设备(使用
openpty()
或类似的),在该 PTY 上启动bash
,然后通过该 PTY 发送您的击键设备。请参阅 GNU C 中的“伪终端”部分图书馆手册。What you really should be doing is create a pseudo-tty device (using
openpty()
or similar), startbash
on that PTY, and send your key strokes through that PTY device. See the section on “Pseudo-Terminals” in the GNU C Library Manual.尝试使用
-i
开关启动 bash。Try starting bash with the
-i
switch.不要使用
cat
。使用带有-e
选项的 Bash 内置read
命令来启用 readline 支持。Don't use
cat
. Use the Bash builtinread
command with the-e
option to enable readline support.