Bash

在 MacOS 中找不到我的 PATH 設置位置

  • February 1, 2022

作為記錄,我在我的系統上執行 ZSH、FISH 和 GNU Bash。我檢查了每個可以想像的位置,但找不到 $PATH 變數的設置位置:

$ echo $PATH
/usr/local/bin /usr/sbin **/Users/bobbi/opt/GNAT/2020/bin /usr/local/CrossPack-AVR/bin** /usr/bin /bin /sbin

我檢查了以下文件和目錄,可能還有其他:

/etc/paths /etc/profile ~/.profile /etc/environment /etc/profile  ~/.bash_login ~/.bash_profile ~/.bashrc

我瀏覽了所有路徑文件,要麼刪除了它們,要麼刪除了設置路徑的任何行,除了/etc/paths

$ cat /etc/paths
/usr/local/bin
/usr/bin
/bin
/usr/sbin

我已閱讀所有文章,但找不到解決方案。我還嘗試執行幾個會產生不同的結果:

$/usr/libexec/path_helper
PATH="/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/bobbi/opt/GNAT/2020/bin:/usr/local/CrossPack-AVR/bin"; export PATH;

$ env -i bash -c 'echo $PATH'
/usr/gnu/bin:/usr/local/bin:/bin:/usr/bin:.

我也做了一個 grep 並發現了這個奇怪的地方:

sh-3.2$ grep -rF --binary-files=without-match '/usr/local/CrossPack-AVR/bin' / 2> /dev/null
/usr/local/CrossPack-AVR-20131216/etc/templates/TemplateProject/TemplateProject.xcodeproj/project.pbxproj:              PATH = "$(PATH):/usr/local/CrossPack-AVR/bin";

我什至退出了終端並重新啟動了幾次,以為它可能存在於某個地方的記憶體中。有沒有我可以執行的腳本,它會準確地告訴我哪個文件負責設置文件?

顯然,Xcode 將其工具鏈路徑分配給 PATH 變數。Xcode 有幾個地方會修改路徑。詳細資訊在以下日期為 10/22/20 的答案中進行了描述:

https://stackoverflow.com/a/64478215/148298

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