簡體   English   中英

從shell腳本有效訪問變量

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM