1
我在我的~/.zshrc
中添加了以下自定义函数,但是当我使用sudo运行命令时,找不到命令。为什么我的自定义命令不能在zsh中使用sudo?
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'作为运行命令。 Shell函数,别名和其他任意shell命令都被排除。 – chepner