Linux 将输入文件解析为环境变量

Linux 将输入文件解析为环境变量,linux,bash,Linux,Bash,我有一个bash脚本,我想读取一个设置文件。设置文件的每一行对脚本的其余部分都有特殊意义(例如line1=源目录line2=目标目录) 有没有一种简单的方法可以将设置文件解析为我可以在脚本的其余部分中使用的环境变量 编辑:我喜欢原始想法,但是。。。我本来打算有一个这样的文件: /my/source/dir /my/dest/dir /我的/来源/目录 /my/dest/dir 不是: src_dir=/my/source/dir dst_dir=/my/dest/dir 我可以解析第一个文件吗?

我有一个bash脚本,我想读取一个设置文件。设置文件的每一行对脚本的其余部分都有特殊意义(例如line1=源目录line2=目标目录)

有没有一种简单的方法可以将设置文件解析为我可以在脚本的其余部分中使用的环境变量

编辑:我喜欢原始想法,但是。。。我本来打算有一个这样的文件:

/my/source/dir /my/dest/dir /我的/来源/目录 /my/dest/dir 不是:

src_dir=/my/source/dir dst_dir=/my/dest/dir 我可以解析第一个文件吗?

您可以找到它的来源

. foo.sh
这将允许您使用
foo.sh
中定义的所有变量。 您还可以使用
source
关键字调用

source foo.sh

source:源文件名[参数]
从当前shell中的文件名读取和执行命令。

一个常见的技巧是源配置文件。例如,在Red Hat系统上,
/etc/rc.d
/etc/sysconfig
中的系统脚本执行此操作

. /etc/prog.conf
这会像读取脚本一样读取它们。如果设置使用
name=value
表单,并且注释以
#
开头,这将非常有效


注意:确保配置文件是可信的,因为您像脚本一样执行它。它应该由相同的用户和组拥有,并且与父脚本具有相同的权限。

如果您的文件只有值,您就不会真正“解析”它

exec 3
. /etc/prog.conf
exec 3<config
read source <&3
read dest <&3
exec 3<-