bash – 从文件设置环境变量

前端之家收集整理的这篇文章主要介绍了bash – 从文件设置环境变量前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在bash编写一个脚本,它解析文件与某个文件夹中的3个变量,这是其中之一:
MINIENTREGA_FECHALIMITE="2011-03-31"
MINIENTREGA_FICHEROS="informe.txt programa.c"
MINIENTREGA_DESTINO="./destino/entrega-prac1"

文件存储在./conf/prac1中

我的脚本minientrega.sh然后使用以下代码解析文件

cat ./conf/$1 | while read line; do
    export $line
done

但是当我在命令行中执行minientrega.sh prac1时,它不会设置环境变量

我也尝试使用源./conf/$1,但同样的问题仍然适用

也许有一些其他的方式来做到这一点,我只需要使用我传递的文件的环境变量作为我的脚本的参数。

你的方法的问题是在while循环中的导出发生在一个子shell中,这些变量将不会在当前shell(while循环的父shell)中可用。

文件本身添加导出命令:

export MINIENTREGA_FECHALIMITE="2011-03-31"
export MINIENTREGA_FICHEROS="informe.txt programa.c"
export MINIENTREGA_DESTINO="./destino/entrega-prac1"

然后你需要在当前shell中的文件中使用:

. ./conf/prac1

要么

source ./conf/prac1

猜你在找的Bash相关文章