是否可以将文本(如用户输入的内容)添加到当前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
答案 0 :(得分:2)
Readline库没有此功能(尽管为了参考,您可能需要查看zsh
,其内置行编辑器具有此功能)。但是,在这种情况下,您可以使用历史记录扩展代替undo
命令。例如,键入!!
,然后Meta- ^(通常是Alt- ^,但可能是Esc- ^,取决于您的设置)将扩展历史记录扩展而不实际执行命令,让用户编辑命令。 / p>