ich versuche ein Script zu schreiben, dass mehrere Scripts in einer Schleife aufruft. Klingt simpel, ist es aber scheinbar nicht. Das ganze läuft unter einer relativ alten Bash 2.03 auf Solaris 10 (ja, das ist ein Debian-Forum aber Bash ist Bash).
So sieht das Script zur Zeit aus:
Code: Alles auswählen
#!/exlibris/aleph/a20_1/product/bin/bash
icingahost=ubsrvappl3
hostname=`hostname`
pluginpath=/usr/local/nagios/aleph_serv
nscapath=/exlibris/aleph/a20_1/alephm/icinga/send_nsca
nscaconf=/exlibris/aleph/a20_1/alephm/icinga/send_nsca.cfg
checks='
Aleph PC;check_aleph_pc;10 20
Aleph SIP2;check_aleph_sip2;2 10
Aleph SLNP;check_aleph_slnp;
Aleph WWW;check_aleph_www;
Aleph z39 Gate;check_aleph_z39_gate;
Aleph z39 Server;check_aleph_z39_server;
'
msg=""
IFS=$'\n'
for check in $checks
do
service=`echo $check | cut -d ";" -f 1`
command=`echo $check | cut -d ";" -f 2`
arguments=`echo $check | cut -d ";" -f 3`
output=`$pluginpath/$command $arguments | tail -1`
code=$?
msg="${msg}$hostname\t$service\t$code\t$output\n"
done
echo -e "$msg" | $nscapath -H $icingahost -c $nscaconf
Das Problem ist, dass die aufgerufenen Scripts immer nur einen einzigen Parameter sehen und nicht zwei wie oben 10 20. Es ist, als ob ich "10 20" (in Anführungszeichen) geschrieben hätte.
Ich vermute ja, dass es an "IFS=$'\n'" liegt aber ich weiß nicht, wie ich das anders bewerkstelligen soll.
Weiß jemand, wie ich das am besten lösen kann?