fish: sudo: !!: команда не найдена

У меня есть рыба, установленная в моей Linux Mint DE. Мне очень нравится, как рыба делает вещи проще, и выглядит так красиво, хотя я не нашел правильного ответа о том, почему я не могу выполнить:

sudo: !!: command not found 

Сначала я пытался избежать восклицательных знаков с помощью судо !! но не работает. Кто-нибудь знает, почему это не удается?

3 Solutions collect form web for “fish: sudo: !!: команда не найдена”

Я не нашел встроенную замену !! в Fish однако вы можете написать функцию, которая позволяет вам продолжать использовать !!

Взятый из этого ответа https://superuser.com/a/719538/226822

 function sudo if test "$argv" = !! eval command sudo $history[1] else command sudo $argv end end 

!! синтаксис является частью функции замены истории bash, которая не реализуется. См. Эту ссылку для обсуждения. Пожалуйста, не стесняйтесь взвешивать то, что, по вашему мнению, нужно делать рыбам.

Самая эффективная (с точки зрения нажатия клавиши) замена для sudo !! стрелка вверх, чтобы вызвать последний элемент истории, ctrl-A, чтобы перейти к началу строки, затем введите sudo.

Если вы используете !! только в контексте sudo !! , вы можете определить привязку клавиш к ^s (CTRL + s), которая добавляет sudo к вашей команде:

 function prepend_command set -l prepend $argv[1] if test -z "$prepend" echo "prepend_command needs one argument." return 1 end set -l cmd (commandline) if test -z "$cmd" commandline -r $history[1] end set -l old_cursor (commandline -C) commandline -C 0 commandline -i "$prepend " commandline -C (math $old_cursor + (echo $prepend | wc -c)) end 

Это позволяет вводить любую команду и добавлять sudo во время ввода или как в вашем случае в качестве замены sudo !!

См . Комментарий Ахти о обсуждении github

  • Очередь - задача в рабочей оболочке
  • Linux и Unix - лучшая ОС в мире.