When writing bash I make sure to standardize when validating.
I don't use double square brackets [[ unless using special validators
that require this.
I would recommend that you use the double brackets throughout your script.
Also, when validating I take the extra step and use the following for example:
if ${variable} -eq 0 ]; then
Using the {} around the variable has a special meaning making use that
only the value is expanded, and it works great.
When troubleshooting scripts I comment our every block making sure the
results are what I want. Then, I am able to move forth.
Hope this helps.
Saul David Alanis
Quoting Raymond Norton <admin at lctn.org>:
> Bash:
>
> #!/bin/bash -x
>
>
>
>
> On 11/12/2013 10:50 AM, Jake Vath wrote:
>> Are you trying to run this as a Bash script with /#!/bin/bash/ (or
>> some from of Bash)?
>> or are you trying to run this as a Bourne shell with /#!/bin/sh/
>> (or some form of Borne)?
>>
>> -> Jake
>>
>>
>> On Tue, Nov 12, 2013 at 9:01 AM, Raymond Norton <admin at lctn.org
>> <mailto:admin at lctn.org>> wrote:
>>
>> I run the following script to test if a host is on-line and
>> trigger a back up if it's alive. Something apparently changed with
>> the script and it is giving me a "unary operator expected" error
>> for line 17.
>>
>> Any ideas what is triggering it?
>>
>>
>>
>> if [ -f /etc/bacula/ping_check.txt ];
>> then
>> FILEDATE=`cat /etc/bacula/ping_check.txt`
>> else
>> FILEDATE=0
>> fi
>>
>> if [ $NOWDATE -ne $FILEDATE ];
>> then
>> if [[ $CMD_RET =~ ", 0% packet loss" ]]
>> then
>> echo "$HOST pinged ..."
>> echo $NOWDATE > /etc/bacula/ping_check.txt
>> # run backup script
>> /etc/bacula/backup-host-1
>>
>> else
>> echo "$HOST did not ping ..."
>> fi
>> fi
>>
>> exit
>>
>> -- Raymond Norton
>> LCTN
>> 952.955.7766 <tel:952.955.7766>
>>
>> Sent from My Desktop
>>
>> _______________________________________________
>> TCLUG Mailing List - Minneapolis/St. Paul, Minnesota
>> tclug-list at mn-linux.org <mailto:tclug-list at mn-linux.org>
>> http://mailman.mn-linux.org/mailman/listinfo/tclug-list
>>
>>
>>
>> --
>> This message has been scanned for viruses and
>> dangerous content by *MailScanner* <http://www.mailscanner.info/>, and is
>> believed to be clean.
>>
>>
>> _______________________________________________
>> TCLUG Mailing List - Minneapolis/St. Paul, Minnesota
>> tclug-list at mn-linux.org
>> http://mailman.mn-linux.org/mailman/listinfo/tclug-list
>
> --
> Raymond Norton
> LCTN
> 952.955.7766
>
> Sent from My Desktop