Я добавил следующую пользовательскую функцию в свой ~/.zshrc
, но я получаю команду не найденной, когда я запускаю ее с помощью sudo.Почему моя пользовательская команда не работает над sudo в zsh?
woodo() {
if [ $EUID != 0 ]; then
echo "It's a weird tree."
else
echo ' _ __'
echo ' /`\ (~._ ./ )'
echo ' \__/ __`-_\__/ ./'
echo ' _ \ \/ \ \ |_ __'
echo ' ( ) \__/ -^ \/\'
echo ' \_/ " \ | o o |../__'
echo " \\. --' ====/||/\\ "
echo ' \ . . |---__.\__/'
echo ' /: / | |'
echo ' / : / \_/'
echo ' --/ :: ('
echo ' ( | ( (____'
echo ' .-- .. ----**.____)'
echo ' \___/ '
fi
}
$ woodo
It's a weird tree.
$ sudo woodo
sudo: woodo: command not found
Я также изменил его проверить $UID
(как это было предложено here), но все равно это не будет работать:
...
if [[ $UID !=0 || $EUID != 0 ]]; then
...
Спасибо! Я добавил это как файл в '/ usr/local/bin' и работает сейчас. – avi
'sudo' требует исполняемого файла, что-то, что он может передать' execve', в качестве команды для запуска. Функции оболочки, псевдонимы и другие произвольные команды оболочки исключены. – chepner