我是否需要命令' env'用于设置临时环境变量?

时间:2016-01-18 17:57:07

标签: c# command-line mono

两行命令的区别是什么?

shy@nova:~/dev$ env TEST_VAR=demo mono test.exe
demo
shy@nova:~/dev$ TEST_VAR=demo mono test.exe
demo
shy@nova:~/dev$

test.exe只是写出Environment.GetEnvironmentVariable的结果(" TEST_VAR");到控制台。正如你所看到的那样,无论是否包含“env”都可以使用。

这有什么解释吗?可以' env'总是被省略或者是不好的行为?

2 个答案:

答案 0 :(得分:1)

来自Wikipedia's env lemma

  

env是Unix和类Unix操作系统的shell命令。它用于打印环境变量列表或在更改的环境中运行另一个实用程序,而无需修改当前存在的环境

     

[...]

     

启动X应用程序xcalc并让它出现在不同的显示器上:

env DISPLAY=foo.bar:1.0 xcalc
     

请注意,这种env的使用通常是不必要的,因为大多数shell支持在命令前设置环境变量

DISPLAY=foo.bar:1.0 xcalc

所以,不,如果你的shell是那些“大多数贝壳”之一。

答案 1 :(得分:0)

试试这个来源 https://www.mkssoftware.com/docs/man1/env.1.asp

据我所知,除非您想明确设置或更改环境变量,否则大多数shell都不需要 env