用或不用导出定义一个变量

什么是export

有什么区别:

export name=value

name=value

export使变量可用于子流程。

那是,

export name=value

意味着变量名称可用于您从该shell进程运行的任何进程。 如果您希望进程使用此变量,请使用export ,然后从该shell运行该进程。

name=value

意味着变量作用域被限制在shell中,并且不可用于任何其他进程。 你会用这个(说)循环变量,临时变量等。

请注意,导出变量不会使父进程可用。 也就是说,在派生进程中指定和导出变量并不会在启动它的进程中可用。


为了说明其他答案的内容:

$ foo="Hello, World"
$ echo $foo
Hello, World
$ bar="Goodbye"
$ export foo
$ bash
bash-3.2$ echo $foo
Hello, World
bash-3.2$ echo $bar

bash-3.2$ 

其他人已经回答说,出口使变量可用于子壳体,这是正确的,但仅仅是一个副作用。 当你导出一个变量时,它将这个变量放在当前shell的环境中(即shell调用putenv(3)或setenv(3))。 一个进程的环境是通过exec继承的,使得这个变量在subhells中可见。

链接地址: http://www.djcxy.com/p/39319.html

上一篇: Defining a variable with or without export

下一篇: confused by clicked() and clicked(bool) in qt 4 signal and slot