export 命令可以将 Shell 脚本中的变量导出到子 Shell 脚本中,并使变量在子 Shell 中也可以访问。默认情况下 Shell 脚本中的变量在子 Shell 脚本中是不可用。export 命令把自己的参数创建为一个环境变量,而这个环境变量可以被当前脚本调用的其他的脚本看见和使用。
我们使用两个脚本示例说明。
exportTest1:
#!/bin/sh
echo "this is exportTest1, foo=\"$foo\""
echo "this is exportTest1, bar=\"$bar\""
exit 0
exportTest2:
#!/bin/sh
foo="Hello, this is exportTest2 foo"
bar="Hello, this is epxortTest2 bar"
./exportTest1
输出结果为:
this is exportTest1,foo=""
this is exportTest1, bar="Hello, this is exportTest2 bar"
在exportTest2 中定义了两个变量 foo 和 bar,然后调用 exportTest1
exportTest1 直接打印 foo 和 bar 两个变量。在 exportTest2 中 foo 就是一个普通变量,子Shell 脚本中无法访问,bar 变量通过 export 命令将变量导出,子 Shell 脚本是可以访问该变量的。
exportTest1 中没有定义 foo 变量,同时也无法访问 exportTest2 中的变量 foo,因此 $foo 取值为空
而由于 exportTest2 中的 bar 变量通过 export 命令导出,因此 exportTest1 作为 exportTest2 的子脚本可以访问 bar 变量。