哪个没有搜索完整的 $PATH

哪个没有搜索完整的 $PATH

如果我运行,sudo which abc我希望它在超级用户 $PATH 中搜索程序“abc”,但看起来它只搜索一个子集。

我可以通过运行sudo echo $PATH和比较搜索到的路径来看到这一点。

$ sudo which abc
which: no abc in (/sbin:/bin:/usr/sbin:/usr/bin)

$ sudo echo $PATH
/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/opt/aws/bin:/home/ec2-user/.local/bin:/home/ec2-user/bin

这里发生了什么?

答案1

$PATHsudo在运行之前展开。因此,您看到的是您的价值PATH,而不是您 sudo 的用户的价值。

试试这个:

$ sudo bash -c 'echo $PATH'

相关内容