псевдоним sudo с zshrc - получает псевдоним nocorrect sudo

Сначала я проверил этот ответ:

Мой вопрос по-прежнему:

Если я помещу эти строки в свой файл ~.zshrc:

JAVA_HOME="/user/lib/jvm/java-7-openjdk-amd64"
export JAVA_HOME

alias sudo="sudo env JAVA_HOME=$JAVA_HOME"

Затем выполните выход.

Затем попробуйте:

> sudo ./somejava-stuff.sh

Я все еще вижу «Переменная среды JAVA_HOME не определена»

Когда я проверяю, был ли применен мой псевдоним:

> which sudo 

Я получил неожиданный вывод, который говорит:

"sudo: псевдоним nocorrect sudo"

Вопрос. Почему?

Если я сделаю это вручную:

> sudo env JAVA_HOME=$JAVA_HOME ./somejava-stuff.sh

Это работает нормально.

-- Также я попытался установить «псевдоним с пробелом», как было предложено здесь

Я устал также это:

...

alias sudo='nocorrect sudo'
alias sudo="sudo env JAVA_HOME=$JAVA_HOME "

Как было предложено здесь.


person ses    schedule 09.04.2014    source источник
comment
Хорошо.. Я думаю, это просто не работает: github.com/sorin-ionescu/prezto/ вопросы/531   -  person ses    schedule 10.04.2014


Ответы (1)


В: Почему это так?

Это связано с тем, что ваши файлы инициализации переопределяют ваш пользовательский псевдоним sudo. Вы можете иметь только один псевдоним для одной команды одновременно.

Что ты можешь сделать:

Способ 1

Выберите другое имя для вашего псевдонима:

alias jsudo='sudo env JAVA_HOME="$JAVA_HOME"'

Также обратите внимание на разницу в цитировании между вашей версией и этой.

Способ 2

Найдите и удалите строку в файлах инициализации zsh, которая переопределяет ваш псевдоним. Где-то будет строка с надписью alias sudo='nocorrect sudo'.

Если вы не можете найти эту строку, вам придется придерживаться метода 1. Это будет ошибкой с вашей стороны, а не проблемой zsh или Linux.

Обновите свой псевдоним sudo с помощью

alias sudo='nocorrect sudo env JAVA_HOME="$JAVA_HOME"'

PS: Весь бизнес nocorrect заключается в том, чтобы не дать zsh исправить вашу команду, что обычно бесполезно для sudo.

person that other guy    schedule 10.04.2014