2011-06-22 50 views
15

在linux下我會去:如何在cygwin中設置環境變量?

setenv -p MYVAR "somevalue" 

但是,這似乎並沒有在Cygwin的工作。

+0

請詳細說明:你在使用什麼外殼? – amphetamachine

+0

'echo $ SHELL'讓我回到/ bin/sh - google告訴我這是Bourne shell。 – BeeBand

+0

好的 - 我明白了 - 對於Bourne shell來說,它是VAR =值。 – BeeBand

回答

22

默認情況下,Cygwin運行的是Bourne shellBash,因此設置變量的命令是不同的。這是你需要的代碼:

export MYVAR="somevalue" 

export部分讓殼知道它是一個環境變量,而不是一個局部變量。

如果你在你的home目錄鍵入ls -a,你應該會看到一些或所有的下列文件:

.bashrc 
.bash_profile 
.profile 

.bash_profile是爲登錄shell執行,.bashrc是交互式非登錄shell執行。爲了最簡單地確保環境變量始終設置,打開.bash_profile,並添加文字:

export MYVAR="somevalue" 

您與殼然後執行.bash_profile每次啓動時,它會運行此命令。然後,您將始終可以訪問MYVAR變量。如果您沒有export變量,則只能在您的.bash_profile文件中訪問。

您可以檢查這個變量是由它的價值打印到外殼定義:

echo $MYVAR 

您可以刪除(未設置)與變量:

unset $MYVAR 

上殼配置文件簡短的話

另外,關於.bashrc vs .bash_profile.profile,請參閱以下答案:

對於配置的簡單起見,我建議從.bash_profile採購的.bashrc文件。這種加入.bash_profile

if [ -f ${HOME}/.bashrc ]; then 
    source ${HOME}/.bashrc 
fi 

這將加載.bashrc.bash_profile

如果你這樣做,你可以改爲把下面的行.bashrc,如果你想:

export MYVAR="somevalue" 
+0

MYVAR在我下次啓動cygwin時還會在那裏嗎? – BeeBand

+1

@BeeBand我剛剛更新了我的答案。如果只在shell中輸入命令,則直到退出shell爲止。如果你把它放在配置文件中,每次使用shell時都會有它。如果你修改你的配置文件並且不重新啓動你的shell,你可以輸入'〜/ .bashrc'來執行配置文件而不用重新啓動。 – dbmikus

+1

@dbmikus - 你也可以補充一點,你可以像這樣訪問環境變量的值 - 「$ MYVAR」。要查看變量的值,請輸入'echo $ MYVAR'。 – Steam

2

建立在cygwin環境變量的最佳方法是創建一個bash的個人資料,並執行該配置文件每次登錄並運行shell。

在我的。在.bash_profile文件,這是我的設置有

JAVA_HOME = C:/Program Files/Java/jdk1.7.0_51 
export JAVA_HOME 
export PATH=$PATH:$JAVA_HOME/bin 

一旦運行bash中,檢查出回聲$ JAVA_HOME,你應該看到的路徑作爲輸出。