用或不用导出定义一个变量
什么是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