test: argument expected


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting test: argument expected
# 1  
Old 05-12-2007
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%|[89][0-9]%)"|cut -d"%" -f1|tail -1`
if [ $a -ne "" ]
then
df -k|egrep "(100%|[89][0-9]%)"|awk '{print $1,$5,$6}'
else
echo "No disk capacity more than 80%"
fi

thk in advance
# 2  
Old 05-12-2007
Try:
if [ "$a" -ne "" ]
# 3  
Old 05-12-2007
It's work !!! thank a lot sir
# 4  
Old 05-12-2007
Quote:
Originally Posted by Perderabo
Try:
if [ "$a" -ne "" ]
The -ne operator is an arithmetic operator, for string comparison the != operator must be used.
Code:
if [ "$a"!= "" ]

You can also use the -n operator:
Code:
if [ -n "$a" ]


Jean-Pierre.
# 5  
Old 05-12-2007
if [ "$a" -ne "" ]
is legal. It will be true if $a is a non-zero integer. You're right that the user probably meant to use "!=" here. It seems to be working because the output is constrained to an integer greater than 80.

Now that I'm awake, I see a second problem as well. Some filesystems based on the McKusick filesystem have a minfree parameter which reserves disk space that can never be allocated except by root. 100% is often reported when the non-reserved soace has been exhausted. At this point, a non-root user cannot allocate any more space. However, a root process can continue to allocate space and this drives the number reported by df above 100%.
# 6  
Old 05-12-2007
df output may vary between platforms. On Solaris with nawk you can write something like this:

Code:
df -k|nawk 'NR>1{sub(/%/,"",$5)
		if($5>=80)
			(x[$1]=$5)&&c=1
  }END{
 	if(c)
		for(i in x) print i,x[i]
	else 
		print "No disk capacity more than 80%"}'

on Linux like this:

Code:
df -P|awk 'NR>1{sub(/%/,"",$5)
	if($5>=80)
		(x[$6]=$5)&&c=1
  }END{
 	if(c)
		for(i in x) print i,x[i]
	else 
		print "No disk capacity more than 80%"}'


Last edited by radoulov; 05-12-2007 at 11:57 AM..
# 7  
Old 05-12-2007
no need for a 'sub(/%/,"",$5)':
Code:
	if(int($5)>=80)

or for some awk-s:
Code:
	if($5+0>=80)

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

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

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