test: argument


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting test: argument
# 1  
Old 09-23-2010
test: argument

Hi,

I having trouble with a test numeric value.

Here is my code :

Code:
nb_wanted=$(cat ${type_proto} | grep "#nbr_#branche#" | grep $branche | awk '{print $3}')

                if [ ! -s {$nb_wanted} ] ;
                then
                            nb_ready=$(cat ${fic_tmp_listeSTAF} | wc -l)
                            echo "-------------------------------------------" | tee -a ${fic_tmp_result}
                            echo "Numbers files wanted/ready : $nb_wanted / $nb_ready" | tee -a ${fic_tmp_result}

                else
                         nb_ready=$(cat ${fic_tmp_listeSTAF} | wc -l)
                         echo "-------------------------------------------" | tee -a ${fic_tmp_result}
                         echo "Numbers present files : $nb_ready" | tee -a ${fic_tmp_result}

               fi

$nb_wanted may have a numeric value or not. If it has a numeric value it should do the fisrt part (then). If it has no value it sould goes to the else part.

My problem is I can't deal with the test value command has the script goes each time on the first part (then) even if $nb_wanted has no numeric value...

Thanks for your help.
# 2  
Old 09-23-2010
try this,

Code:
isnumeric()
{
        result=`echo "$1" | tr -d '[[:digit:]]'`
        echo $result | awk '{print length}'
}

nb_wanted=$(cat ${type_proto} | grep "#nbr_#branche#" | grep $branche | awk '{print $3}')

                if [ $(isnumeric "$nb_wanted") -eq 0 ] ;
                then
                            nb_ready=$(cat ${fic_tmp_listeSTAF} | wc -l)
                            echo "-------------------------------------------" | tee -a ${fic_tmp_result}
                            echo "Numbers files wanted/ready : $nb_wanted / $nb_ready" | tee -a ${fic_tmp_result}

                else
                         nb_ready=$(cat ${fic_tmp_listeSTAF} | wc -l)
                         echo "-------------------------------------------" | tee -a ${fic_tmp_result}
                         echo "Numbers present files : $nb_ready" | tee -a ${fic_tmp_result}

               fi


Last edited by pravin27; 09-23-2010 at 10:15 AM..
# 3  
Old 09-23-2010
Dear pravin27,

Thanks for your quick reply. unfortunately this doesn't work. I am always going on the fisrt part of the condition (then).

If I replace the
Code:
-eq 0

that you given by
Code:
-gt 0

I am alwyas going on the last part of the condition (else).

That is really wired. I am on solaris 9 (ksh). If you have any idea ?

I am sure that the
Code:
$nb_wanted

has a numeric value when it sould have one, has I am also sure that it has no value at all when the file read as no value.

Thanks for all your help.

---------- Post updated at 08:03 AM ---------- Previous update was at 07:28 AM ----------

Dear all ,

thanks for your help my prblem is now solved.

Just for you :

The -n test requires that the string be quoted within the test brackets.

So I solved my problem with this :

Code:
if [ -n "$nb_attendu" ] ;

My mistake while I tried to use the test argument as string is not null was to use single brackets
Code:
[ ]

instead of the test brackets
Code:
" "

If this can help someone.

Cheers
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. 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
Login or Register to Ask a Question