what's wrong with if fi??


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting what's wrong with if fi??
# 1  
Old 08-21-2012
what's wrong with if fi??

Code:
#!/bin/bash
if [ X`cat /proc/cpuinfo |grep vmx` != X ] && [ X`zcat /proc/config.gz |grep CONFIG_KVM=y` != X ];then
		echo "xxxx"
fi


give below error

line 2: [: too many arguments
# 2  
Old 08-21-2012
You've got at least one useless use of cat in there. Don't need to put X before your strings, you can test with -z. And should be quoting stuff (probably why you were getting the error).

But you don't need [ ] at all. Just test whether grep returns success or failure directly. You can suppress its output with -q on linux, or redirect its output with >/dev/null other places.

Code:
if grep -q vmx /proc/cpuinfo && zcat /proc/config.gz | grep -q CONFIG_KVM=y
then
        echo "something"
fi

# 3  
Old 08-21-2012
You need double brackets.

Code:
(00:10:48\[root@DeCoBoxOmega)
[~]$ cat search
xaaax
xxxxx
cbbbc

(00:10:58\[root@DeCoBoxOmega)
[~]$ cat help
 if [[ x`grep q search` = x ]] && [[ x`grep i search` = x ]]; then
        echo help;
  fi

(00:11:16\[root@DeCoBoxOmega)
[~]$ bash help
help

# 4  
Old 08-21-2012
use this..

Code:
if [[ `grep used file` = "" ]]
then
echo "pass"
fi


Last edited by pamu; 08-21-2012 at 03:50 AM..
# 5  
Old 08-21-2012
Quote:
Originally Posted by pamu
Code:
if [[ `grep used file` = "" ]]

[[..]] construct is not at all required here. The general syntax of if is:
Code:
if statement
then
 <something>
fi

Something like this could be used instead (as Corona688 pointed out):
Code:
if ! grep -q used file 2>/dev/null

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Why result is wrong here ? whether break statement is wrong ?

Hi ! all I am just trying to check range in my datafile pls tell me why its resulting wrong admin@IEEE:~/Desktop$ cat test.txt 0 28.4 5 28.4 10 28.4 15 28.5 20 28.5 25 28.6 30 28.6 35 28.7 40 28.7 45 28.7 50 28.8 55 28.8 60 28.8 65 28.1... (2 Replies)
Discussion started by: Akshay Hegde
2 Replies

2. UNIX for Advanced & Expert Users

What am I doing wrong here?

I am working on a simple login ID check shell script that should prompt for a user ID then check to see if this user is logged on. Trying to get the hang of this stuff so I am thinking of my own little projects. #! /bin/sh echo "please enter a user name" read user if user=$user then... (3 Replies)
Discussion started by: jsk319342
3 Replies

3. UNIX for Dummies Questions & Answers

What is wrong in here ???

]#PATH=/usr/bin:/etc:/bin:/boot/grub:/boot/grup/bin: /boot/solaris/bin:/sbin:/usr/openwin/bin:/usr/5bin://usr/X11/bin:/usr/apache/bin:/usr/apache2/bin:/usr/appserver/bin:... (9 Replies)
Discussion started by: microbot
9 Replies

4. Shell Programming and Scripting

what I m doing wrong?

when user select option 2 nothing happen.for testing purpose I put echo command but is not executing . basically when user prompt for option 2,I want to get list of database name from user separeted by space (TEST DEVL) and put into the file seprated by new line TEST DEVL after that stay on... (1 Reply)
Discussion started by: okreporthai
1 Replies

5. UNIX for Dummies Questions & Answers

what is wrong with this tr -d?

here is my command in bash shell on Mac OS X tiger: history | tr -d emacs here is what I get: hitory | grp "" | tr -d "" hitory | grp "" | tr -d """" hitory | grp "" | tr -d '' hitory | grp "" | tr -d '' hitory | grp "" | tr -d '' hitory | grp "" | tr -d... (3 Replies)
Discussion started by: cleansing_flame
3 Replies

6. UNIX for Dummies Questions & Answers

What am I doing wrong?

I really just mess around in UNIX, for the most part, when I want to get something done. I can usually piece things together by searching for brief how-to's on Google, but the syntax errors in my following .sh file are really confusing me. I've got lots of programming experience in other places, so... (7 Replies)
Discussion started by: demonpants
7 Replies

7. UNIX for Dummies Questions & Answers

what is wrong here

Hello, I have a simple script such as ----------------------------- #! /bin/sh YEAR=`date -u +%Y`; MONTH=`date -u +%m`; DAY=`date -u +%d`; DATE=$MONTH$DAY$YEAR LOGFILES=auditTrail-$DATE LOGMATCH=$LOGFILES\* ARGUM='' # find all files and write them to a file find . -name... (7 Replies)
Discussion started by: arushunter
7 Replies

8. Shell Programming and Scripting

Anything wrong with this

Does anyone see anything wrong with this. #getInfraFiles() #{ # cd Infra/$DAY # rm * # /usr/bin/ftp -i -n $LINE << cmd # user "$USER" "$PASSWD" # cd $INFRAPATH # binary # mget * # bye #} besides that its commented out (4 Replies)
Discussion started by: rcunn87
4 Replies

9. UNIX for Dummies Questions & Answers

Please tell me what do I do wrong here!

#!/usr/bin/csh # DAY=`date +%y%m%d` H=`date +%H` M=`date +%M` mailx -s "$H-Myfile" email@email.com</home/mydir/myfile Thanks! (4 Replies)
Discussion started by: bobo
4 Replies

10. UNIX for Advanced & Expert Users

What am I doing wrong

When I execute following shell script I am getting the following error syntax error at line 50 : `<<' unmatched What am I doing wrong :confused: Script begins here ---------------- MPAN_FILE=$1 exec 3<$MPAN_FILE ... (2 Replies)
Discussion started by: guptan
2 Replies
Login or Register to Ask a Question