鱼:sudo:!!:找不到命令

VaT*_*aTo 9 command-history fish

我在 Linux Mint DE 中安装了 fish。我真的很喜欢鱼如何让事情变得更容易,它看起来很漂亮,虽然我还没有找到关于为什么我不能执行的正确答案:

sudo: !!: command not found
Run Code Online (Sandbox Code Playgroud)

起初我试图用 sudo 逃避感叹号!!但也没有用。有人知道为什么会失败吗?

Nat*_*iel 11

我还没有!!在 Fish 中找到内置的替代品,但是您可以编写一个允许您继续使用的函数!!

取自这个答案https://superuser.com/a/719538/226822

function sudo --description "Replacement for Bash 'sudo !!' command to run last command using sudo."
    if test "$argv" = !!
    eval command sudo $history[1]
else
    command sudo $argv
    end
end
Run Code Online (Sandbox Code Playgroud)


rid*_*ish 10

!!语法是bash的历史替换功能,这鱼不落实的一部分。请参阅此链接进行讨论。请随意权衡你认为鱼应该做什么。

最有效的(就按键而言)替换sudo !!是向上箭头调用最后一个历史记录项,ctrl-A 移动到行首,然后键入 sudo。

  • @SaulOrtega 他并没有声称它完全来自鱼,只是该方法适用于鱼,而 `!!` 不会。 (4认同)

rie*_*333 6

@ridiculous_fish 的答案已经过时了。实现等效的最快方法sudo !!Ctrl+ p/ up-arrow(无论您喜欢哪个),然后Alt+s在命令前面加上sudo.