如何在csh/tcsh中为一个命令设置环境变量

Tor*_*erg 44 csh tcsh

在bash中,我可以为一个命令设置一个临时环境变量,如下所示:

LD_LIBRARY_PATH=/foo/bar myprogram
Run Code Online (Sandbox Code Playgroud)

我可以在csh/tcsh中做类似的事情吗?我可以

setenv LD_LIBRARY_PATH /foo/bar; myprogram; unsetenv LD_LIBRARY_PATH
Run Code Online (Sandbox Code Playgroud)

,但这将失去变量之前的任何值.

dog*_*ane 63

在csh中,您可以尝试env:

% env LD_LIBRARY_PATH=/foo/bar myprogram
Run Code Online (Sandbox Code Playgroud)

或者,子shell:

% (setenv LD_LIBRARY_PATH /foo/bar; myprogram)
Run Code Online (Sandbox Code Playgroud)

  • 第一个是使用外部程序 (env),它不是 tcsh,因此您将丢失上下文,例如别名。因此,我建议宁愿使用第二个。 (4认同)
  • 我被第二版中没有等号的绊倒了.显示我需要仔细阅读;) (2认同)