1

我有一个 bash 脚本,我想读取一个设置文件。设置文件的每一行对于脚本的其余部分都有特殊含义(例如 line1=source_directory line2=destination_directory)

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

编辑:我喜欢源代码的想法,但是......我原本打算有一个这样的文件:

/我的/源/目录
/我的/目的地/目录

不是:

src_dir=/我的/源/目录
dst_dir=/我的/dest/dir

我可以以某种方式解析第一个文件吗?

4

3 回答 3

1

你可以采购它

. foo.sh

这将允许您使用foo.sh. 您也可以使用source关键字调用

source foo.sh

更多信息

source: source filename [arguments]

    Read and execute commands from FILENAME in the current shell.
于 2013-04-17T02:53:22.897 回答
1

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

. /etc/prog.conf

这就像它们是脚本一样读取它们。如果设置使用name=value表单并且注释以#.

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

于 2013-04-17T02:53:34.830 回答
0

如果您的文件只有值,那么您并没有真正“解析”它。

exec 3<config
read source <&3
read dest <&3
exec 3<-

read如果您的值可能包含空格等,您可能想要添加一些标志。我也许应该将答案更改为有read -r,但我鼓励您也研究其他可用的标志

于 2013-04-17T04:49:19.993 回答