我有一个ini配置文件,我需要使用此配置创建一个shell脚本。什么是访问所有变量的最简单方法,可以从shell脚本中有效地使用。
我能用个数组吗?现在计划找到[]个括号的计数,然后通过awk逐个获取所有变量。如果有最简单有效的方法
cat app.ini
下面是我的示例配置文件的输出。可以是N个街区。
[APP1]
name=Application1
StatusScript=/home/status_APP1.sh
startScript=/home/start_APP1.sh
stopScript=/home/stop_APP1.sh
restartScript=/home/restart.APP1.sh
logdir=/log/APP1/
[APP2]
name=Application2
StatusScript=/home/status_APP2.sh
startScript=/home/start_APP2.sh
stopScript=/home/stop_APP2.sh
restartScript=/home/restart.APP2.sh
logdir=/log/APP2/
.
.
.
.
.
[APPN]
name=ApplicationN
StatusScript=/home/status_APPN.sh
startScript=/home/start_APPN.sh
stopScript=/home/stop_APPN.sh
restartScript=/home/restart.APPN.sh
logdir=/log/APPN
/
最佳答案
考虑使用bash ini parserhttps://github.com/albfan/bash-ini-parser这样的库。它包含了很多细微差别,如缩进、空白、注释等。
您的案例示例可能如下所示:
#!/bin/bash
. bash-ini-parser
cfg_parser app.ini
cfg_section_APP1
echo $name
cfg_section_APP2
echo $logdir
cfg_section_APPN
echo $logdir
关于arrays - 从Shell脚本有效访问变量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49063933/