Oli*_*nde 2 sudo environment-variables which
ssh bobby@tony:~$ which tmux
/usr/bin/tmux
ssh bobby@tony:~$ sudo which tmux
/usr/local/bin/tmux
ssh bobby@tony:~$ echo $PATH
/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/usr/local/git/bin:/usr/local/sbin:/usr/local/sbin
ssh bobby@tony:~$ sudo echo $PATH
/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/usr/local/git/bin:/usr/local/sbin:/usr/local/sbin
Run Code Online (Sandbox Code Playgroud)
有谁知道这里发生了什么?为什么sudo which tmux返回 /usr/local/bin/tmux 而不是 /usr/bin/tmux?
PS:我安装了 2 个版本的 tmux(一个在 /usr/bin 中,另一个在 /usr/local/bin 中)。
Mat*_*Mat 14
这是因为您的root用户有不同的路径。
sudo echo $PATH
Run Code Online (Sandbox Code Playgroud)
打印你的路径。是您的 shell在 sudo开始之前进行变量扩展(并将其作为命令行参数传递,扩展)。
尝试:
sudo sh -c 'echo $PATH'
Run Code Online (Sandbox Code Playgroud)