Bash用户提示默认输入文本

时间:2016-03-24 03:14:00

标签: 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

1 个答案:

答案 0 :(得分:2)

Readline库没有此功能(尽管为了参考,您可能需要查看zsh,其内置行编辑器具有此功能)。但是,在这种情况下,您可以使用历史记录扩展代替undo命令。例如,键入!!,然后Meta- ^(通常是Alt- ^,但可能是Esc- ^,取决于您的设置)将扩展历史记录扩展而不实际执行命令,让用户编辑命令。 / p>