导出不工作在我的shell脚本

我有两个脚本1.sh和2.sh.

1.sh如下:

#!/bin/sh variable="thisisit" export variable 

2.sh如下:

 #!/bin/sh echo $variable 

据我所读,像这样(导出)可以从另一个shell脚本访问variables。 但是这在我的脚本中不起作用。 有人可以帮忙吗? 提前致谢。

Solutions Collecting From Web of "导出不工作在我的shell脚本"

如果你正在执行你的文件,如sh 1.sh./1.sh然后你在一个子shell中执行它。

如果你想在当前shell中进行更改,你可以这样做:

 . 1.sh # OR source 1.sh 

请考虑阅读参考文档 。

“脚本运行时使用的source [或. ]运行在现有的shell中,任何由脚本创建或修改的变量在脚本完成后都将保持可用,相反,如果脚本运行的只是filename ,那么一个单独的子shell (具有完全独立的一组变量)将被派生出来运行脚本。“

export在执行shell的环境中放置一个变量,以便将其传递给脚本执行的进程,而不是调用脚本或任何其他进程的进程。 尝试执行

 #!/bin/sh FOO=bar env | grep '^FOO=' 

 #!/bin/sh FOO=bar export FOO env | grep '^FOO=' 

export的效果。

要将变量从1.sh变为2.sh ,可以从1.sh调用1.sh ,或者在2.sh2.sh

 #!/bin/sh . ./1.sh echo $variable