Unary Operator Expected ---drives me crazy


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Unary Operator Expected ---drives me crazy
# 1  
Old 07-08-2013
Unary Operator Expected ---drives me crazy

Hi i get this code in my shell script for shinken :

Code:
kind_fan()
{
        oid_fan_count=".1.3.6.1.4.1.1211.1.15.4.5.0"
        SNMPGETCMD="${SNMPGET} -Ovq ${oid_fan_count}"
        fancount=`${SNMPGETCMD}`
        verbose "command=${SNMPGETCMD}" "result=${fancount}"
        i=1
        result=""
        state=${STATE_OK}
        while [$i -le ${fancount} ]; do
                oid_fan_name=".1.3.6.1.4.1.1211.1.15.4.6.1.2"
                SNMPGETCMD="${SNMPGET} -Ovq ${oid_fan_name}.$i"
      fanname="`${SNMPGETCMD}`"
      verbose "command=${SNMPGETCMD}" "result=${fanname}"
                oid_fan=.1.3.6.1.4.1.1211.1.15.4.6.1.3
                SNMPGETCMD="${SNMPGET} -Ovq ${oid_fan}.$i"
                fanstatus="`${SNMPGETCMD}`"
                verbose "command=${SNMPGETCMD}" "result=${fanstatus}"
                if [ ${fanstatus} -ne 2 ]
                then
                        result="${result} $fanname CRIT ${fanstatus} -"
                        state=$STATE_CRITICAL
                else
                        result="${result} $fanname OK ${fanstatus} - "
                fi

                i=`expr $i + 1`
        done

        echo ${result}
        exit ${state}
}

but when i execute the script it returns the error : : [: i: unary operator expected.

i already checked on forums and internet but i cant resolve this.

thank you

Moderator's Comments:
Mod Comment Please use code tags for your data and code...

Last edited by joeyg; 07-08-2013 at 10:37 AM..
# 2  
Old 07-08-2013
Do you get a line number with that error?

However, I will make a first guess --
Code:
while [$i -le ${fancount} ]; do

should be
Code:
while [ $i -le ${fancount} ]; do

Space characters are important.
# 3  
Old 07-08-2013
Quote:
Originally Posted by joeyg
Space characters are important.
Absolutely agree Smilie.
# 4  
Old 07-08-2013
Yes it's line 162 because this script is a part af a bigger one.

so it's the line while [ $i -le "${fancount}" ]; do

I already test with a correct space caracter but i get the same error,
I guess the problem is $(fancount), i think oid_fan_count=".1.3.6.1.4.1.1211.1.15.4.5.0" is simply the wrong OID so $(fancount) stays empty nad create the error.

i've to check the SNMP configuration of my host, it must be wrong
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Unary operator expected

In all my Googling, this usually happens when someone is comparing a variable, and that variable is unset. That doesn't appear to be the case for me... #!/bin/bash -x while read line do f=$(echo $line | tr -s ' ' | cut -d' ' -f 3) echo $f if then echo "This... (2 Replies)
Discussion started by: jnojr
2 Replies

2. UNIX for Dummies Questions & Answers

[: -gt: unary operator expected

Hi I have problem with my script. I dont now why but i don't change anything and script stop working. this is my code: #!/bin/sh for i in `ps -A | grep pocron.sh | grep -v grep | awk '{print $2}'` do COUNT=$((COUNT+1)) done ostatnie_wykonanie=`cat porader.log`... (1 Reply)
Discussion started by: fotex
1 Replies

3. UNIX for Dummies Questions & Answers

: unary operator expected

Hiya all, Why do I get a :unary operator expected when I try to put a condition statement in my shell script (sh) like so and how to fix? if ; then echo "say hello" else echo "don't say hello" fi ? It seems if the script receives an argument it works but if I don't put an... (4 Replies)
Discussion started by: cyberfrog
4 Replies

4. Shell Programming and Scripting

unary operator expected

i=0 while Shell script reports an error "unary operator expected" pointing the above line. $i by default is 0 and holds integer value and $buf is also holding integer value. Please can some one let me know what is missing. Thanks. (1 Reply)
Discussion started by: sunrexstar
1 Replies

5. UNIX for Dummies Questions & Answers

Problem unary operator expected

I get the following error ./get_NE05: line 42: while do echo ${STRING_NAME} J=1 if ; then EXT=0$I else EXT=$I fi while do echo $I-$J #calculating last occurrence OCCURRENCE=`grep -io "${STRING_NAME}"... (3 Replies)
Discussion started by: f_o_555
3 Replies

6. UNIX for Dummies Questions & Answers

Error : -ne: unary operator expected

find . -name "*.*"|xargs grep WT:DBF_WL>> $F Wfexist=`cat $F|grep $i` echo $Wfexist if ; then echo $Wfexist echo "Workflow Exist" else touch $O chmod 777 $O echo $Wfexist echo $WfExist >> $O fi I am getting the error that -ne: unary operator expected in the line with red... (2 Replies)
Discussion started by: ritu.s
2 Replies

7. Shell Programming and Scripting

line 5: [: -gt: unary operator expected

Hello all, :confused: I am not getting this error. Pls help me. ./construct_operon.sh: line 5: #!/bin/bash # Construct Operons using gene pairs. rm -rf operons_result lines=`awk 'END {print NR}' ecoli_operons` while ; do head -1 ecoli_operons | awk '{print $1"\n"$2}' > pattern ... (5 Replies)
Discussion started by: admax
5 Replies

8. Shell Programming and Scripting

unary operator expected

Im trying to fix my /etc/weekly that rotates various logs however it does them no matter what filesize they are and i want them to only do it if there file size exceeds 2M or something. So I'm playing with a script to get the filesize using a ls -l command which works and puts the value into a... (3 Replies)
Discussion started by: timgolding
3 Replies

9. UNIX for Dummies Questions & Answers

[: =: unary operator expected

HI, while running a script, I got the below mentioned error. /bin/sh: line10 : supportedMozillaVersion() { case "$*" in *rv:1.*) return 0;; *rv:.*) return 0;; *rv:*) return 1;; Mozilla\ 1.*) return 0;; Mozilla\ .*) return 0;; *) return 1;; esac } supportedFirefoxVersion() { case... (7 Replies)
Discussion started by: bhag281
7 Replies

10. Shell Programming and Scripting

unary operator expected

hi i am trying to compare a value with value 50. but i am getting " I am using if then echo "------------" fi please help thanks in advance Satya (2 Replies)
Discussion started by: Satyak
2 Replies
Login or Register to Ask a Question