这是一个简单的问题。
有时在终端上,当你犯了一个小错误时,控制台会问?你是说…?-有没有办法迅速接受这个建议?。
例如:
$ git add . -all
error: did you mean `--all` (with two dashes ?)
有没有一个命令重复最后一行,但用两个破折号?
如果你忘记写sudo
,你可以只写sudo !!
,它会解决你的问题。我想知道除了error: did you mean
的情况之外,是否还有类似的情况。
在。。。
$ git add . -all
error: did you mean `--all` (with two dashes ?)
消息由git直接写入终端。这意味着bash无法知道写了什么消息;如果不降低在shell下运行的程序的效率(通过shell而不是直接将其输出路由到终端)并改变其行为(如果他们在stdout或stderr上调用isatty()
),那么在shell中实现任何可以自动执行纠正的东西都是不可能的。
也就是说,你当然可以运行
^-all^--all
如果您没有关闭历史扩展,如set +H
(如果关闭,则可以使用set -H
重新启用)。我通常会自己关闭这个功能;这通常比它的价值更麻烦(当脚本中使用历史扩展敏感的字符,特别是!
时,使在脚本中运行良好的命令在交互式shell中崩溃)。