Bash
哪個沒有搜尋完整的 $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
這裡發生了什麼?
$PATH
在執行之前展開sudo
。因此,您看到的是PATH
對您的價值,而不是對您 sudo 的使用者的價值。試試這個:
$ sudo bash -c 'echo $PATH'