我想编写一个shell脚本,可以在命令行提示符后打印出建议的命令。然后,在脚本退出后,用户只需按[enter]键即可运行建议的命令。
考虑到我对bash不熟悉,甚至不知道是否可能实现这一点。我考虑使用复制-粘贴命令,移动光标,使用$PS1变量,但没有找到合适的方法...
有人知道如何实现这个功能吗?
考虑到我对bash不熟悉,甚至不知道是否可能实现这一点。我考虑使用复制-粘贴命令,移动光标,使用$PS1变量,但没有找到合适的方法...
有人知道如何实现这个功能吗?
根据评论中Landen的建议(非常感谢!),我已经成功解决了我的问题。
这个解决方法需要使用xautomation软件包(xte
命令,模拟按键),不是非常健壮,并且可能依赖于xautomation的键盘布局处理和系统快捷键。例如,我必须更改Unity HUD的快捷键。
但是考虑到我的命令非常快,并且主要是为了个人使用,这个解决方案完全满足我的需求:
COMMAND_PASSED='sudo apt-get update'
# Displays the content of $COMMAND_PASSED on the next prompt
xte "str $COMMAND_PASSED"
sleep 0.1
tput cub ${#COMMAND_PASSED}
sleep 0.1
和tput cub ${#COMMAND_PASSED}
命令可以防止在命令提示符之前显示按键。
sleep 0.1
让整个命令在提示符之前打印出来。
tput cub ${#COMMAND_PASSED}
将光标向后移动,以确保所有不必要的输出都被擦除。
谢谢大家!
readline
没有提供一种以编程方式向输入缓冲区添加文本的方法。 - chepnervim01:43 PM lando ~ vim `
- Lando