ERROR-> test: argument expected , what does it mean?


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting ERROR-> test: argument expected , what does it mean?
# 1  
Old 09-21-2006
ERROR-> test: argument expected , what does it mean?

I am trying to compare two integer variables in the if statement, but i am getting this "test:argument expected".
What am i missing?
Why is the if loop not executing correctly?


trunkPCM="100000";
more $FILE |while read line
do

PCM=`echo $line | awk '{ print $2 }'`
if [ -n "$PCM" ]
then
echo "$PCM, $trunkPCM";

if [ $PMC -eq $trunkPCM ]
then
trunkPCM=$PCM;
fi
fi
done


Thanks for your help!
# 2  
Old 09-21-2006
PCM != PMC
# 3  
Old 09-21-2006
In your test you use the $PMC variable instead of $PCM.

Don't put an ending ; on your script lines.

To read the file, use the following loop:
Code:
while read line
do
   . . . . 
done < $FILE

The field 2 can be read directly :
Code:
trunkPCM=100000
while read field1 PCM
do
   if [ -n "$PCM]
   then
      echo "$PCM, $trunkPCM"
      if [ $PCM -eq $trunkPCM ]
      then 
         trunkPCM=$PCM
      fi
   fi
done < $FILE

Jean-Pierre.
# 4  
Old 09-21-2006
Comparing Character in String

if [expr $puma ="prod"]
then
pass="null"
echo $pass
fi
What is wrong with this?
I want to check if variable pua has the value prod and if equal assign pass a value of null (string).
this is the error i got.
thanks,
bubeshj
# 5  
Old 09-22-2006
bubeshj,

It seems that you are not putting space characters in where they need to be, however, it's hard to tell for sure, since your code is not wrapped in code tags.
You previously had this:
Code:
if [expr $puma ="prod"]

Space it out like this:
Code:
if [ expr $puma = "prod" ]

Please use code tags for this reason.

Also, it looks like you are using the "test" program along with "expr", which won't work. The left bracket character ( [ ) is a sort of alias to "test". Get a manual on test ( man test ) to see how this works. Instead of using both, just use 1 of the programs. So change your first line to either:
Code:
if [ $puma = "prod" ] ; then

or
Code:
if expr $puma = "prod" ; then

Also, expr will print a '1' if true, '0' if false. Use "test" if you don't want the digit to be printed ( or re-direct output ).

Also, since this is a new question, it should probably be a new thread.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Test: argument expected

The following example prompts are passed into the shell script. $1 = /tmp/dir/ $2 = varies (test.txt, test1.txt, test2.txt...) $3 = test_YYYYMMDD.txt --------------------------------------------------------------------------- #!/bin/sh cd $1 if ; then if ; then ... (3 Replies)
Discussion started by: smkremer
3 Replies

2. UNIX for Dummies Questions & Answers

Test: argument expected error in shell script

Hi, I am trying to write a small script that validates if there exist files that start with a pattern in a given directory. Below is the piece of my script: #!/usr/bin/ksh BTFDIR=/opt/ships/temp if then echo 'found' else echo 'not found' fi When I run this... (2 Replies)
Discussion started by: snvniranjanrao
2 Replies

3. Shell Programming and Scripting

Error- test: argument expected

check_build_info_table() { if then export build_info_table=`sqlplus -s sna/dbmanager <<! set pagesize 0 heading off feedback off SELECT DISTINCT TABLE_NAME FROM ALL_TABLES WHERE OWNER = 'XYZ' AND TABLE_NAME = 'MY_TABLE'; exit !` ... (3 Replies)
Discussion started by: ambarginni
3 Replies

4. UNIX for Advanced & Expert Users

Error:--test: argument expected--Even though i give an argument.

Hi All, I am running the script VBoxManage list vms |sed 's/"//g' | cut -d " " -f1 > har1out.mytxt result=`cat har1out.mytxt | grep $1' echo $result echo $1 { if then echo pass else echo fail fi (2 Replies)
Discussion started by: harsha85
2 Replies

5. Shell Programming and Scripting

error : test: argument expected

Hello all, I am trying to figure out why i am getting an error while executing the script...altought it seems like its work...but still get the test arguement error...any help would be appericiate...this script basically connects to any oracle db ( just have to pass db name to it)... (4 Replies)
Discussion started by: abdul.irfan2
4 Replies

6. Shell Programming and Scripting

Test: argument expected.

Hi, Since i am new to Unix and on suggestion on some smart guys on unix... i have decide to learn more deeply on Unix...so i was kind of playing with if statements and found this error... though i tried to correct is for hours now i couldnt find whats wrong in my loop. if then ... (4 Replies)
Discussion started by: bhagya2340
4 Replies

7. Shell Programming and Scripting

test: argument expected

I'm newbie to coding script so i found test: argument expected when i run it. please help me a=`df -k |awk '{print $5 }'|egrep "(100%|%)"|cut -d"%" -f1|tail -1` if then df -k|egrep "(100%|%)"|awk '{print $1,$5,$6}' else echo "No disk capacity more than 80%" fi thk in advance (7 Replies)
Discussion started by: unitipon
7 Replies

8. Shell Programming and Scripting

test: argument expected

Can someone help me with a very simple query I have the following script: #!/bin/sh VAR1="" if then VAR1="Message" fi echo $VAR1 put when i run it i get the following error test_job.sh: test: argument expected (5 Replies)
Discussion started by: andy202
5 Replies

9. UNIX for Dummies Questions & Answers

test:argument expected

Hi all, I am getting "test:argument expected" error in the following script LOGDIR=$XXAR_TOP/log PROGRAM_NAME=XXAR_GPS_LBFDMSGEN .. .. .. Check_Errors() { sqllogfile=$1 cd ${LOGDIR} countfile=${LOGDIR}/${PROGRAM_NAME}.tmp echo "countfile is " $countfile >> $LOGFILE echo... (4 Replies)
Discussion started by: rrs
4 Replies

10. Shell Programming and Scripting

Facing test: argument expected ERROR

Hi All, When i run the below code : v_shortfield = "" if ; then echo "ravi" else echo "kumar" fi i am getting output as : sam.ksh: test: argument expected kumar Why i am getting error test:argument expected and why i am not getting output as "ravi" :confused: (5 Replies)
Discussion started by: rkrgarlapati
5 Replies
Login or Register to Ask a Question