繁体   English   中英

导出在Shell脚本中不起作用,但通过CLI可以

[英]export doesn't work in shell script but does via CLI

我在以下文件-test.sh-中:

#!/bin/sh
export ASDF=test

我先执行chmod +x test.sh ,然后执行./test.sh ,最后echo $ASDF ./test.sh和...什么都没有。 好像没有设置$ ASDF。 但是,如果我通过CLI而不是Shell脚本来执行此操作,则可以正常工作,并且已定义$ ASDF。

Shell脚本为什么不起作用?

这是因为:

./test.sh

将创建一个子外壳,并在子外壳中设置env变量。 子外壳退出后,该变量在父外壳中将不可用。

使用以下形式来避免分叉子外壳,并在当前外壳本身中执行test.sh

. ./test.sh

要么:

source ./test.sh

现在,变量ASDF也将在当前Shell中可用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM