从 shell 脚本读取配置文件
我正在寻找类似于 Python 的 ConfigParser 或 Perl 的 Config::INI 之类的 shell 脚本。我过去已经获取了文件来完成此任务,但我更喜欢阅读而不是执行我的“配置文件”。有谁知道可用于 shell(或 bash)脚本的与上述模块类似的东西吗?
I am looking for a shell script analog to something like Pythons's ConfigParser
or Perl's Config::INI
. I have sourced files in the past to accomplish this, but I'd prefer to read rather than execute my "config file". Does anyone know of anything comparable to the above modules available for shell (or bash) scripts?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
你不想获取它,所以你应该:
1.读取配置,2.验证行 3.评估它们
配置文件的示例
,如果运行上面的示例应该得到(未测试):
当然这不是最好的解决方案- 也许有人发布了更好的帖子。
You don't want source it, so you should:
1.read the config, 2.verify lines 3.eval them
sample of config file
if you run the above sample should get (not tested):
sure this is not the best solution - maybe someone post a nicer one.
您可能想看一下 cfget,它可以通过 sudo apt-get install cfget 来安装。
You might want to take a look at
cfget
which can be installed withsudo apt-get install cfget
.基于
grep
的替代方案似乎更具可读性:其中:
-v
grep 选项表示排除匹配行^\[\|^#
选择所有行以[
或#
开头(配置解析器部分和注释)仅当您的配置文件
=
周围没有空格时它才会起作用(如果您想使用 Python 使用space_around_delimiters=False
生成配置,请参阅 https://docs.python.org/3/library/configparser.html#configparser.ConfigParser.write)支持的配置示例:
grep
based alternative seems to be more readable:Where:
-v
grep option means exclude matching lines^\[\|^#
selects all lines which starts with[
or#
(configparser sections and comments)It will work ONLY if your config file doesn't have spaces around
=
(if you would like to generate config with Python usespace_around_delimiters=False
see https://docs.python.org/3/library/configparser.html#configparser.ConfigParser.write)Supported config example:
您可以使用 bash 本身来解释 ini 值,方法是:
示例文件:
查看更多示例:如何在 a 中获取 INI 值shell 脚本?
或者您可以使用 bash ini-parser,可以在 老派 DevOps 博客网站。
You can use bash it-self to interpret ini values, by:
Sample file:
See more examples: How do I grab an INI value within a shell script?
Or you can use bash ini-parser which can be found at The Old School DevOps blog site.