2011-05-10 36 views
33

在bash,我可以設置一個臨時的環境變量,像這樣只是一個命令:如何設置環境變量在csh /只是一個命令tcsh的

LD_LIBRARY_PATH=/foo/bar myprogram 

我可以做在csh/tcsh中類似的東西?我可以做

setenv LD_LIBRARY_PATH /foo/bar; myprogram; unsetenv LD_LIBRARY_PATH 

,但那會失去變量的任何以前的值。

回答

49

在csh,你可以嘗試env

% env LD_LIBRARY_PATH=/foo/bar myprogram 

,或者子shell:

% (setenv LD_LIBRARY_PATH /foo/bar; myprogram) 
+2

我被缺乏第二個版本等號絆倒。顯示我需要仔細閱讀;) – drewish 2013-04-25 17:51:26

+0

第一個使用的是不是tcsh的外部程序(env),因此您將丟失上下文,如別名。因此,我會建議寧願使用第二個。 – orzel 2017-12-17 01:40:42