[英]Accessing Variable effectively from shell script
我有一個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-parser https://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
下面一行幫助我們找到每個部分中的特定值。
sed -nr "/^\[APP1\]/ { :l /^name[ ]*=/ { s/.*=[ ]*//; p; q;}; n; b l;}" app.ini
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.