【发布时间】:2017-03-10 19:29:07
【问题描述】:
我编写了一个处理多个文件的 bash 脚本。我现在想添加对配置文件的支持。这是我想要的数据结构:
Array (
[0] => Array (
[name] => datset1
[path] => /var/lib/bliTool/ds1
[type] => cvs
)
[1] => Array (
[name] => datset2
[path] => /var/lib/bliTool/ds2
[type] => xml
)
[2] => Array (
[name] => datset3
[path] => /home/igor/test/ds3
[type] => cvs
)
)
Q1 这样的数据结构在 bash 中是否可行?还有其他建议吗?请记住,这应该在配置文件中...
Q2:我正在考虑每个“集”有一个配置文件,例如
/etc/myApp/
/etc/myApp/myApp.conf
/etc/myApp/datasets.d/
/etc/myApp/datasets.d/ds1.conf
/etc/myApp/datasets.d/ds2.conf
/etc/myApp/datasets.d/dsN.conf
每个 /etc/myApp/datasets.d/dsN.conf 文件看起来像
name=The DS name
path=/the/path/to/the/ds/files
type=thetype
你有什么推荐的?有没有办法在一个文件中完成所有操作?
Q3:我希望每组支持多个路径值。我可以支持类似的东西
path="/first/path /second/path"
但我认为我会遇到空格问题,所以我应该引入一个分隔符
path="/first/path:/second/path"
分割字符串。
或者有没有更好的方法?
【问题讨论】:
-
是的,类似的。我可以在 bash 中将索引数组与 assoc 数组混合吗?它是否适合配置文件?
-
你考虑过用 Perl 代替吗?
-
这是可能的,因为
bash是图灵完备的。但是,您可能不想编写或维护所需的代码。