Script output: -bash-4.1$ ./test.sh + '[' -f /tmp/test/ping_check.txt ']' + FILEDATE=0 + echo 0 + [[ '' -ne 0 ]] Script: -bash-4.1$ cat test.sh #!/bin/bash set -x if [ -f /tmp/test/ping_check.txt ]; then FILEDATE=`cat /tmp/test/ping_check.txt` else FILEDATE=0 fi echo $FILEDATE if [[ $NOWDATE -ne $FILEDATE ]]; then if [[ $CMD_RET =~ ", 0% packet loss" ]] then echo "$HOST pinged ..." echo $NOWDATE > /tmp/test/ping_check.txt # run backup script /tmp/test/backup-host-1 else echo "$HOST did not ping ..." fi fi You need double quotes to get rid of that error, as far as my test results show. SDA Quoting canito at dalan.us: > 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 > > > > _______________________________________________ > TCLUG Mailing List - Minneapolis/St. Paul, Minnesota > tclug-list at mn-linux.org > http://mailman.mn-linux.org/mailman/listinfo/tclug-list