為什麼不能將某個環境變數添加到我的 bash 配置文件中?
我在使用 Cygwin 執行名為 Phing 的 PHP 項目時遇到問題。這不是一個大問題,因為我可以讓它工作,但我正在尋找一個原因或解決方法,以便我可以以不同的方式做。
為了讓 Phing 在我的系統上與 Cygwin 一起工作,我必須通過控制面板添加一些到 windows 7 環境變數的路徑
起初我必須添加 4 個變數。
PHP_COMMAND = /cygdrive/e/Server/php/php.exe PHING_HOME = E:\Server\phing PHP_CLASSPATH = E:\Server\phing\classes PATH : add this to the end ;E:\Server\phing\bin
.bash_profile
儘管將這些添加到我的下,但我寧願做什麼cygwin/home/jason/.bash_profile
現在我能夠成功地將 4 個項目中的 3 個添加到我的
bash_profile
PHP_COMMAND=:/cygdrive/e/Server/php/php.exe PHP_CLASSPATH=:/cygdrive/e/Server/phing/classes PATH=${PATH}:/cygdrive/e/Server/phing/bin
然後我仍然必須添加
PHING_HOME=:E:\Server\phing
到我的 Windows 環境設置中現在我不確定為什麼,當我嘗試將
PHING_HOME
路徑添加到我的路徑bash_profile
然後phing
在 cygwin 中執行時,我得到了這個錯誤……
Could not open input file: /cygdrive/e/Server/phing/bin/phing.php
只要我保留
PHING_HOME
為環境變數,那麼 phing 就可以正常執行。那麼有誰知道為什麼這個 1 變數必須在控制面板的環境變數中而不是在我的 CYGWIN .bash_profile 文件中?
這是一個奇怪的。我建議添加
set -x
在 .bash_profile 的頂部。這將使 bash 列印正在執行的每個以下命令的列表。通過查看錯誤消息之前發生的情況,您應該能夠找出 PHING_HOME 混淆了哪個命令。(shell 啟動後,您可以使用 再次關閉調試輸出
set +x
。)
您是否正在導出 .profile 中的變數?在 bash 中,您可以使用
VAR=value
但這僅適用於外殼程序本身,不適用於您從外殼程序執行的命令。要使其成為環境變數,您必須將其“導出”到環境中
export VAR
如果您願意,可以將這些步驟組合在一起:
export VAR=value