出口不是我的shell脚本工作(export not working in my shell scr

2019-06-24 21:45发布

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

1.sh如下:

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

2.sh如下:

#!/bin/sh
echo $variable

根据我读,做这样的(出口)可以从另一个访问一个shell脚本的变量。 但是,这是不是在我的脚本工作。 可有人请帮忙。 提前致谢。

Answer 1:

如果您要执行类似文件sh 1.sh./1.sh那么你在一个子shell执行它。

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

. 1.sh
# OR
source 1.sh

请考虑通过去参考文档 。

“当一个脚本使用运行source [或. ]它现有的外壳内运行,由脚本创建或修改任何变量将脚本完成之后仍然可用。相反如果脚本一样运行filename ,然后单独的子外壳(有一个完全独立的变量集)将催生运行脚本“。



Answer 2:

export因此它被传递给由脚本执行的过程,而不是过程调用脚本或其他任何方法把一个变量在执行shell环境。 试运行

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

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

看到效果export

为了充分利用可变1.sh2.sh ,或者调用2.sh1.sh ,或进口1.sh2.sh

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


文章来源: export not working in my shell script