test:argument expected


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers test:argument expected
# 1  
Old 11-03-2006
Java 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 "SQLlogfile is.." $sqllogfile
grep 'Total' ${sqllogfile} > ${countfile}
echo 'Checking Errors' >> $LOGFILE
if [ `wc -l ${ERR_FILE}|cut -c1,2` -gt 0 ]
then
echo 'Errors on errfile' >> $LOGFILE
cntr=`expr $cntr + 1`
fi
}


"countfile=${LOGDIR}/${PROGRAM_NAME}.tmp" at this line i am getting error
"can,t create tmp file"
"test :argument expected"


please help me

thanks
sudha
# 2  
Old 11-03-2006
Enable debugging by setting set -x. Run the script. It will give you more details on the error. Also how are you invoking Check_Errors () ?
# 3  
Old 11-03-2006
the test error is probably because the wc command displays its output separated by 7 spaces from the start of the line. so when u do cut -c1,2, only the first 2 columns are getting selected which are blank. u wud be better off doing cut -c8,9 if u want to get the first two digits of the output.

as for not being able to create the tmp file, i dont know...can u explain what exactly are u trying to do here?
# 4  
Old 11-03-2006
Hi Vino/Napolayan

Thanks for the reply,

The code i am using is

Code:
UTLDIR=$ERPPLS1P/edi/outbound              
INPUTDIR=$ERPPLS1P/edi/inbound             
LBOXDIR=${INPUTDIR}/backup		


DB_LOGIN=apps/apps 
BUILD_DATE=`date "+%Y%m%d%H%M%S"`
LOGDIR=$XXAR_TOP/log  
PROGRAM_NAME=XXAR_GPS_LBFDMSGEN 
LOGFILE=$LOGDIR/${PROGRAM_NAME}_${BUILD_DATE}.log
FDMSLOADFILENAME=POLYI820FDMSP 		
BAKDIR=${INPUTDIR}/backup


PREFIXFILENAME=fdmstrade
OUTFILENAME=${UTLDIR}/${PREFIXFILENAME}.dat

CTL_FILE=$XXAR_TOP/bin/GEAR_GPS_LBFDMS.ctl;             export CTL_FILE   
BAD_FILE=$LOGDIR/XXAR_GPS_LBFDMS_${BUILD_DATE}.bad; 	export BAD_FILE
DIS_FILE=$LOGDIR/XXAR_GPS_LBFDMS_${BUILD_DATE}.dis; 	export DIS_FILE
touch $DIS_FILE
chmod 777 $DIS_FILE
ERR_FILE=$LOGDIR/XXAR_GPS_LBFDMS_${BUILD_DATE}.err; 	export ERR_FILE
touch $ERR_FILE
chmod 777 $ERR_FILE
LOG_FILE=$LOGDIR/XXAR_GPS_LBFDMS_${BUILD_DATE}.log; 	export LOG_FILE
touch $LOG_FILE
chmod 777 $LOG_FILE
cntr=0;   		   										export cntr


CheckReturnCode()
{
Ret_code=$1
if [ $Ret_code -ne 0 ]; then
	echo "Return code --> "$Ret_code >> $LOGFILE
	SendMail "Error executing ${PROGRAM_NAME}"
	exit $Ret_code
fi
}

SendMail()
{
msg=$1
cat ${LOGFILE} | mailx -s "${PROGRAM_NAME} ${msg}" $GRPMAIL
}

Check_Errors()
{
sqllogfile=$1
cd ${LOGDIR}
countfile=${LOGDIR}/${PROGRAM_NAME}.tmp
echo "countfile is " $countfile >> $LOGFILE
echo "SQLlogfile is.." $sqllogfile
grep 'Total' ${sqllogfile} > ${countfile}
        echo 'Checking Errors' >> $LOGFILE
        if [ `wc -l ${ERR_FILE}|cut -c1,2` -gt 0 ]
        then
                echo 'Errors on errfile' >> $LOGFILE
                cntr=`expr $cntr + 1`
        fi

        if [ `wc -l ${countfile}|cut -c1,2` -eq 0 ]
        then
                echo 'No records loaded' >> $LOGFILE
                cntr=`expr $cntr + 1`
        else
                echo "else part"
                uniq_count=`grep "unique constraint" ${LOG_FILE}| wc -l`

                if [ `awk '/rejected/ { print $5 }' ${countfile}` -gt uniq_count ]
                then
                        echo 'Rejected records' >> $LOGFILE
                        cntr=`expr $cntr + 1`
                fi
                if [ `awk '/skipped/ { print $5 }' ${countfile}` -gt 0 ]
                then
                        echo 'Skipped records' >> $LOGFILE
                        cntr=`expr $cntr + 1`
                fi
                if [ `awk '/discarded/ { print $5 }' ${countfile}` -gt 0 ]
                then
                        echo 'Discarded records' >> $LOGFILE
                        cntr=`expr $cntr + 1`
                fi
        fi
echo ${countfile} >> $LOGFILE
}

LoadFile()
{
inputfile=$1

echo "Loading file ${inputfile}" >> $LOGFILE

sqlldr $DB_LOGIN data=${INPUTDIR}/$inputfile control='${CTL_FILE}' log='${LOG_FILE}' bad='${BAD_FILE}' discard='${DIS_FILE}' 2>${ERR_FILE} errors=10000

echo "LOG_FILE is " $LOG_FILE
   Check_Errors ${LOG_FILE}
   if [ cntr -gt 0 ]
   then
	echo "Errors while loading ${inputfile}" >> $LOGFILE
	echo ${LOG_FILE} >> $LOGFILE
	echo ${ERR_FILE} >> $LOGFILE
	CheckReturnCode 1
   else
	cat ${LOG_FILE} >> $LOGFILE
   fi
}

after this i am checking data file validation and calling load file by giving data file as parameter.


when i gave set -x , and run the script i got this

countfile=/usr/tmp/XXAR_GPS_LBFDMSGEN.tmp
+ echo countfile is /usr/tmp/XXAR_GPS_LBFDMSGEN.tmp
+ echo SQLlogfile is.. /mars/u210/erppls1pappl/mods/gear/log/XXAR_GPS_LBFDMS_200
61103040407.log
SQLlogfile is.. /mars/u210/erppls1pappl/mods/xxar/log/XXAR_GPS_LBFDMS_2006110304
0407.log
+ grep Total /mars/u210/erppls1pappl/mods/xxar/log/XXAR_GPS_LBFDMS_2006110304040
7.log
+ echo Checking Errors
+ cut -c1,2
+ wc -l /mars/u210/erppls1pappl/mods/xxar/log/XXAR_GPS_LBFDMS_20061103040407.err

+ [ -gt 0 ]
./bsl.sh: test: argument expected

please help me

thanks
sudha

Last edited by blowtorch; 11-03-2006 at 05:39 AM.. Reason: add code tags
# 5  
Old 11-03-2006
Use the -s option of the test command for checking if the file is empty, instead of wc+cut:
Code:
if [ -s ${ERR_FILE} ]
then
   echo 'Errors on errfile' >> $LOGFILE
   cntr=`expr $cntr + 1`
fi


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

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

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

5. Shell Programming and Scripting

test: argument expected

# to search a file if it exists and whether its readable or not # if yes print its first 5 lines echo enter the filename to be searched read fname if #-d $fname then echo file doesn exists elif then echo its a directory elif then cat $fname else echo its not readable fi # end of... (9 Replies)
Discussion started by: gotam
9 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

+ test.sh: test: argument expected #!/bin/bash if then echo thennnn else echo elseeee fi why does it show this error? Clearly from debug mode, the argument is passed. I also tried if Run on Solaris 9. Thanks (10 Replies)
Discussion started by: lalelle
10 Replies

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

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

10. Shell Programming and Scripting

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 }'` ... (4 Replies)
Discussion started by: tan102938
4 Replies
Login or Register to Ask a Question