表題に書いてしまったが、shellスクリプト + 設定ファイル(ini形式)でスクリプトを書くには、
crudini を使うと便利だ。
RedHat系であれば、
dnf install crudini
RasPiOSやarmbianでは、
apt install crudini
など、crudiniはパッケージとして用意されている。
※ 他のディストリビューションは未確認
例えば、pingを実行するスクリプトを書くとすると、
【/home/user/test.sh】
※ 7行目の部分(TARGET=)で、バッククォートを入れていますが、何故か表示上消えてしまいます
PHPMYFAQの仕様だと思うのですが・・・・
#!/bin/bash
CRUDINI=/usr/bin/crudini
INIFILE=/home/user/test.ini
source <($CRUDINI --get --format=sh $INIFILE common)
TARGET=(`echo $TARGET|xargs`)
for tgt in ${TARGET[@]}
do
source <($CRUDINI --get --format=sh $INIFILE $tgt)
echo "*** Ping $HostName ($IP) ***"
ping -c $PingCount $IP | tee /tmp/${HostName}.pingout
echo ""
done
【/home/user/test.ini】
[common]
TARGET="hostA hostB hostC"
[hostA]
HostName=hostA
IP=192.168.0.1
PingCount=5
[hostB]
HostName=hostB
IP=192.168.0.2
PingCount=3
[hostC]
HostName=hostC
IP=192.168.0.3
PingCount=1
実行例
$ /home/user/test.sh