Problem unary operator expected


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers Problem unary operator expected
# 1  
Old 12-08-2009
Problem unary operator expected

I get the following error
./get_NE05: line 42: [: 4: unary operator expected
Line 42 corresponds to the second IF statement
Code:
while [ $I -le $2 ]
do
    echo ${STRING_NAME[$J]}
    J=1
    if [ $I -lt 10 ]; then
         EXT=0$I
    else
         EXT=$I
    fi
    while [ $J -le 4 ]
    do
        echo $I-$J
        #calculating last occurrence
        OCCURRENCE=`grep -io "${STRING_NAME[$J]}" ${1}-0${EXT}.out_bis| wc -l`
        if [ $J -eq 1 ]; then
            OLD_OCCURRENCE[$J]=${OCCURRENCE}
        fi
        if [ ${OCCURRENCE} -ne ${OLD_OCCURRENCE[$J]} ]; then
            echo "error" $OCCURRENCE[$J] $OLD_OCCURRENCE[$J]
        fi
        J=`expr $J + 1`
    done
    I=`expr $I + 1`
done

Any idea what I'm doing wrong?
Thanks,
Sarah
# 2  
Old 12-09-2009
echo your variables to see what values are currently assigned before that line. You can also use set -x/ set +x to check what is going on. You can also try out double brackets etc.
# 3  
Old 12-20-2009
i know why

i know why, its because I and J are not set you have to do the following:

I=0
J=0

I=`command`
etc...
# 4  
Old 12-20-2009
Quote:
Originally Posted by f_o_555
I get the following error
./get_NE05: line 42: [: 4: unary operator expected
Line 42 corresponds to the second IF statement
Code:
while [ $I -le $2 ]
do
    echo ${STRING_NAME[$J]}
    J=1
    if [ $I -lt 10 ]; then
         EXT=0$I
    else
         EXT=$I
    fi
    while [ $J -le 4 ]
    do
        echo $I-$J
        #calculating last occurrence
        OCCURRENCE=`grep -io "${STRING_NAME[$J]}" ${1}-0${EXT}.out_bis| wc -l`
        if [ $J -eq 1 ]; then
            OLD_OCCURRENCE[$J]=${OCCURRENCE}
        fi
        if [ ${OCCURRENCE} -ne ${OLD_OCCURRENCE[$J]} ]; then
            echo "error" $OCCURRENCE[$J] $OLD_OCCURRENCE[$J]
        fi
        J=`expr $J + 1`
    done
    I=`expr $I + 1`
done

Any idea what I'm doing wrong?
Thanks,
Sarah
I don't think the second if statement is the problem. You would have a problem with the second while before that. J is already declared.

You are setting OLD_OCCURRENCE only when J is 1, but testing it for every value of J. That could be a problem.

On top of that you're treating OCCURRENCE both as a variable and as an array. Which is it?

And what is the starting value of I?
 
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

[: =: unary operator expected error

Why am I getting this error.... #!/bin/sh # iOS-Ad-Remover # Marshall Ford @ marshallbford@gmail.com # This project is hosted @ http://ios-ad- # remover.sourceforge.net # Under the GNU GPL open source license clear echo if ; then echo "You need to be root to run this script."; exit 0; #... (24 Replies)
Discussion started by: mbf123
24 Replies

6. 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

7. 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

8. 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

9. 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

10. UNIX for Dummies Questions & Answers

unary operator expected error

Hi I am doing a script like if then echo "table name dosent exist" exit fi the problem is if $table_name is null then i am getting the error Please help me Thanks in advance (2 Replies)
Discussion started by: ssuresh1999
2 Replies
Login or Register to Ask a Question