Bash用户提示默认输入文本



是否可以将文本添加到当前bash用户输入提示(而不是信息显示提示,在$#之后输入),就好像用户键入了什么一样。

例如,(愚蠢的例子)

假设我想要一个在按下回车后在下一个提示中添加"sudo"的命令

user@computer ~$ runAsSudo # ENTER PRESSED
user@computer ~$ sudo █    # █ is the cursor

我真正的应用程序是有一个命令来撤销某些东西,例如副本,但它不是运行它或请求y/n,而是简单地将它添加到输入提示符中,用户可以在其中执行任何操作。

user@computer ~$ cp myFile /some/long/path/      # ENTER PRESSED
user@computer ~$ undo                            # ENTER PRESSED
user@computer ~$ cp /some/long/path/ myfile █    # █ is the cursor

Readline库没有这个功能(尽管为了参考,您可能想看看zsh,它的内置行编辑器确实有这个功能)。不过,在这种情况下,您可以使用历史扩展来代替undo命令。例如,键入!!,然后键入Meta-^(通常为Alt-^,但可能为Esc-^,具体取决于您的设置)将展开历史展开,而无需实际执行命令,让用户编辑命令。

最新更新