Bash

哪個沒有搜尋完整的 $PATH

  • July 28, 2018

如果我執行,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

這裡發生了什麼?

$PATH在執行之前展開sudo。因此,您看到的是PATH對您的價值,而不是對您 sudo 的使用者的價值。

試試這個:

$ sudo bash -c 'echo $PATH'

引用自:https://unix.stackexchange.com/questions/459027