在Bash中从一个Shell脚本导出变量到另一个脚本

3

我是一个Shell脚本的新手,我正在尝试从子脚本中导出一个变量到父脚本。以下是代码,但不幸的是它没有起作用。不确定问题出在哪里。以下是代码。

我有一个名为set-vars1.sh的脚本,代码如下:

#!/bin/bash
line_write="R"
FLAG=''
if [[ $line_write > " " && $line_write == "R" ]]
 then
  echo "Exporting"
  export FLAG=Y
  #export $FLAG;
elif [[  $line_write > " " && $line_write== "N" ]]
  then
  export FLAG=N
fi

EXIT_STATUS=-1
exit $EXIT_STATUS

我正在尝试从set-vars2.sh调用此代码,如下所示:
#!/bin/bash
./set-vars1.sh
 echo $FLAG

当我尝试运行 set-vars2.sh 时,无法打印 FLAG 的值,它始终为空。

请问这里出了什么问题,我该如何纠正。我已经在这个问题上苦苦思索很长时间了,所以任何帮助都将是巨大的帮助。


1
执行 source ./set-vars1.sh. ./set-vars1.sh 命令,以使它们在 shell 中可用! - iamauser
1个回答

5

使用source命令:

source ./set-vars1.sh

或者:

. ./set-vars1.sh
#The first . is intentional

我尝试了两个选项,但仍然得到空值。谢谢。 - vikeng21
@vikeng21,这是因为在echo打印FLAG之前您已经退出。请从set-vars1.sh中删除退出命令。另外,您还错过了一个空格:$line_write== "N" - Jahid
1
非常感谢。在删除退出状态后,它成功了。 - vikeng21

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接