I suppose the problem comes from "$COUNT" not being initialised. If the expression driving the for-loop in the first line of your script produces no output the loops body will never be executed and this leaves COUNT uninitialised.
The error-message comes from "test" ("[" is just another name for this program) and says that "-gt" is a clause which expects two operands: one before and one behind. One of these required operands is missing.
Insert a debug line before the line
to make sure COUNT does indeed have a value - i suppose it doesn't.
Furthermore, there are severe problems with your code:
is a syntax error: "-z" expects an operand after, not before. It tests for a variable being uninitialised or empty and because no variable is given this is always true. Still, this is probably not what you want. (Syntactically) Correct is
Still, using variables which are sometimes initialised, sometimes not is always a hazard. Add to this that you don't even need the for-loop for counting (use "grep -c" instead) and you shouldn't use backticks at all (really! - they are B-A-D).
Further, i suggest you reindent your code properly. The following syntax error would have stood out immediately:
The "elif" should be an "if", because the first "if" is already closed by a "fi". The "elif" is not the "else"-part of the "if". As there are no other clauses you test the "elif" is superlfuous and you should simply use "else".
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)
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)
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)
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)
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)
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)
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)
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)
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)