2010-06-14 60 views

回答

6

取決於殼。在bash,你可以使用:

export myvar=xyz 

這將設置變量,並使其可用於其他程序。

如果你想設置它一個調用的程序,你可以使用:

myvar=xyz ./myprog 

這將有它設置爲myprog過程,但其後不要退出。

1

請參閱setenv(3)和getenv(3)函數。

12

您可以通過ps -o comm= -p $$知道您正在運行的shell是什麼 - 我認爲這或多或少是通用的。所以,在bash和某些貝殼類似...

如果你想創建一個特定的運行變量,你可以做

MYVAR=value the_command_that_needs_myvar 

如果你想創建一個整個shell會話(即。直到你註銷):

export MYVAR=value 

...然後你可以運行:

the_command_that_needs_myvar 

...多次喲你喜歡在該會議期間,它仍然會看到MYVAR的值爲value

如果您希望爲自己設置所有登錄會話,請將其設置爲~/.profile

請注意,bash的初始化文件可能是一個偉大的大跆拳道。取決於它是通過網絡在本地交互式運行的,取決於其是否被調用爲shbash,它將選擇性地讀取~/.bashrc,~/.profile~/.bash_profile的某種組合。有關詳細信息,請閱讀bash手冊頁的FILES部分。

如果您希望爲每個用戶設置它,每次登錄時都將其放入文件/etc/profile(儘管也有/etc/environment,但我不確定這是多麼廣泛使用)。

查看問題"How to set environment variable for everyone under my linux system?"瞭解更多詳情。

(請注意,某些這種建議將取決於如果您或其他用戶,使用bash,破折號,CSH,KSH等有所不同......但它應該爲大多數使用情況下工作。)

+0

的確,整理出/ etc/environment,/ etc/profile,〜/ .profile,〜/ .kshrc,〜/ .cshrc,〜/ .bash_profile,〜/ .bash_login,〜/ .bashrc和所有其他的可能性不適用於微弱的心臟:-) – paxdiablo 2010-06-14 07:07:09

+0

它讓我想起[The UNIX Hater's Handbook](http://www.art.net/~hopkins/Don/unix-haters/handbook.html) - 當然從過去的糟糕時期剩下的WTFery。我添加了一些關於個人'bash'配置文件。 – detly 2010-06-14 07:19:39