It probably does expand, but it's never set because *$IP* never matches any of the regular expressions. An *else* statement with an error message will show this. Alternatively, in the definition of* $MSG*, give *$HOST* a default value that makes this condition clear: *${HOST:-none}*.
--
*Steve Coile*Senior Network and Systems Engineer, McClatchy Interactive <http://www.mcclatchyinteractive.com/> Office: 919-861-1247 | Mobile: 919-622-5369 | Fax: 919-861-1300
On Thu, Sep 25, 2014 at 10:54 AM, James Louis <jglouisjr at gmail.com> wrote:
His script works fine and he is looking for help in finding out why the one variable doesn't expand. Once that is answered I'm sure he would be glad to hear about other scripting advice.
Thanks, Jim
On Thu, Sep 25, 2014 at 9:27 AM, Root, Paul T <Paul.Root at centurylink.com> wrote:
What’s with all the echos? They are unnecessary and could be causing issues. The following works fine:
if [[ $IP =~ ^10.xxx.xxx.1[0-9]; then
HOST=’server33.test.corp.local’fi
$ IP=10.5.102.13
$ if [[ $IP =~ ^10.5.10[0-9].13 ]]; then
echo "$IP is a match"
fi
10.5.102.13 is a match
$ if [[ $IP =~ ^10.5.102.1[0-9] ]]; then echo "$IP is a match"; fi
10.5.102.13 is a match
$ if [[ $IP =~ ^10.5.102.2[0-9] ]]; then echo "$IP is a match"; fi
*From:* Xymon [mailto:xymon-bounces at xymon.com] *On Behalf Of *Simioni, Rodney *Sent:* Thursday, September 25, 2014 8:20 AM *To:* James Louis; usa ims *Cc:* xymon at xymon.com *Subject:* Re: [Xymon] if statment issue on ext script
Sorry about that.
The issue is that $HOST is not printed in the output next to SERVER.
$BBHOME/bin/bbhostgrep $TESTNAME | while read IP HOSTNAME OTHER; do
if do_fetch $HOSTNAME $IP | grep "$REGEX" > /dev/null ; then
if [[
echo "$IP"=~ ^10.xxx.xxx.1[0-9] ]]; thenHOST=
echo "server33.test.corp.local"elif [[
echo "$IP"=~ ^10.xxx.xxx.2[0-9] ]]; thenHOST=
echo "server34.test.corp.local"elif [[
echo "$IP"=~ ^10.xxx.xxx.3[0-9] ]]; thenHOST=
echo "server35.test.corp.local"elif [[
echo "$IP"=~ ^10.xxx.xxx.4[0-9] ]]; thenHOST=
echo "server36.test.corp.local"elif [[
echo "$IP"=~ ^10.xxx.xxx.5[0-9] ]]; thenHOST=
echo "server37.test.corp.local"elif [[
echo "$IP"=~ ^10.xxx.xxx.6[0-9] ]]; thenHOST=
echo "server38.test.corp.local"elif [[
echo "$IP"=~ ^10.xxx.xxx.7[0-9] ]]; thenHOST=
echo "server39.test.corp.local"fi
if [ $(echo "$X < 10" | bc) -ne 0 ]; then
COL=green MSG=" BIG BROTHER MESSAGE ------------------- DATACENTER : D1 SERVER : "$HOST" STATE : Normal STATUS : Green TEST : TestProd EchoTest RESPONSE SUCCEEDED : "$X" sec IP : "$IP" EVENT TIME : `date +"%c"` " $BB $BBDISP "status $HOSTNAME.$TESTNAME $COL $MSG"#########################
Here is the output – notice that server is empty:
XYMON MESSAGE ------------------- DATACENTER : D1 SERVER : STATE : Normal STATUS : Green TEST : test RESPONSE SUCCEEDED : .079411876 sec IPADDRESS : 10.xxx.xxx.xxx EVENT TIME : Wed 24 Sep 2014 05:48:21 PM EDT
*From:* Xymon [mailto:xymon-bounces at xymon.com <xymon-bounces at xymon.com>] *On Behalf Of *James Louis *Sent:* Thursday, September 25, 2014 9:06 AM *To:* usa ims *Cc:* xymon at xymon.com *Subject:* Re: [Xymon] if statment issue on ext script
On Wed, Sep 24, 2014 at 4:55 PM, usa ims via Xymon <xymon at xymon.com> wrote:
XYMON MESSAGE ------------------- DATACENTER : D1 SERVER : STATE : Normal STATUS : Green TEST : test RESPONSE SUCCEEDED : .079411876 sec IPADDRESS : 10.xxx.xxx.xxx EVENT TIME : Wed 24 Sep 2014 05:48:21 PM EDT
Why is there more to your MSG than what is in your script?
Jim
--
Jim Louis \\\\||//// \ ~ ~ / | @ @ |**--oOo---(_)---oOo--*
"If a free society cannot help the many who are poor, it cannot save the few who are rich." ~ John Kennedy
--
Jim Louis \\\\||//// \ ~ ~ / | @ @ |**--oOo---(_)---oOo--*
"If a free society cannot help the many who are poor, it cannot save the few who are rich." ~ John Kennedy
Xymon mailing list Xymon at xymon.com http://lists.xymon.com/mailman/listinfo/xymon