Multiple conditions in IF


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Multiple conditions in IF
# 1  
Old 06-07-2016
Linux Multiple conditions in IF

Fellas,

Am new to unix os/ and here the situation , I am trying to write multiple condition statement inside if but it throws me a error

here is my piece of code ,
Code:
if [ [ $file1 ne " " ] ] && [ [ $file2 ne " " ] ] && [[ $file3 ne " " ] ]
then 
commands
fi

error : line 15 : [ : missing `]`

can someone please advise me how to fix it



Moderator's Comments:
Mod Comment Please use code tags as required by forum rules!

Last edited by Scrutinizer; 06-07-2016 at 01:28 PM.. Reason: Added code tags.
# 2  
Old 06-07-2016
Hello xeccc5z,

Welcome to forums, please use code tags for commands/codes/Inputs which you are using into your posts as per forum rules. Could you please try following.
Code:
if [[ -z $file1 && -z $file2 && -z $file3 ]]
then 
commands
fi

You could go through manual entry for test too.
Quote:
-z STRING
the length of STRING is zero
Thanks,
R. Singh

Last edited by RavinderSingh13; 06-07-2016 at 03:29 AM..
# 3  
Old 06-07-2016
RavinderSingh13

Thanks for your response and since I am new this I may missed out the rules and i will do it from now on

And my query is I am passing file names as command line arguments and my condition should alert the user if he fails to pass the parameter

am saving those parameters in a variable called file1, file2 and file3

i believe [ -z file ] will check whether file is a zero size file or not , correct me if iam wrong
# 4  
Old 06-07-2016
Quote:
Originally Posted by xeccc5z
RavinderSingh13
Thanks for your response and since I am new this I may missed out the rules and i will do it from now on
And my query is I am passing file names as command line arguments and my condition should alert the user if he fails to pass the parameter
am saving those parameters in a variable called file1, file2 and file3
i believe [ -z file ] will check whether file is a zero size file or not , correct me if iam wrong
Hello xeccc5z,

You welcome, you could hit THANKS button at left side of any post for any useful post to a person. Yes, for NULL values it should work.

Thanks,
R. Singh
This User Gave Thanks to RavinderSingh13 For This Post:
# 5  
Old 06-07-2016
Ravinder,

As i said am passing the file names as command line argument and saving them in variables as file1,file2,file3. When user fails to pass anyone of the arguemnt it should display error message and quit from the script hence i would like to for if condition and checks those file1,file2,file3 values are not empty , how could i right that
# 6  
Old 06-07-2016
If you're checking the first 3 positional parameters instead of the variables you specified before, change:
Code:
if [[ -z $file1 && -z $file2 && -z $file3 ]]

in Ravinder's suggestions to:
Code:
if [[ -z $1 && -z $2 && -z $3 ]]

but, of course, all of this assumes that you're using a shell that recognizes [[ expression ]] syntax.
This User Gave Thanks to Don Cragun For This Post:
# 7  
Old 06-07-2016
The -z test checks for a string's zero length, e.g. if the file name was given. To check for a file's contents being zero or not, use the -s test.
This User Gave Thanks to RudiC For This Post:
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Multiple If conditions

I am analyzing one of the scripts written by another person.script is having multiple if conditions and everything are nested.The code is not formatted properly.Is there any way to identify in Unix to identify begin and end of a particular if block? (6 Replies)
Discussion started by: vamsi.valiveti
6 Replies

2. UNIX for Beginners Questions & Answers

Logic for multiple if conditions.

Hi Gurus, Is there a way we can set a logic for this problem ? The input file looks like below; 1 15 17 2 8 12 3 18 24 4 21 23 5 2 4 6 11 25 So, I would like to print for any row of the input file where the range of value between $2 to $3 lies within the min and max values of Min=10... (2 Replies)
Discussion started by: Indra2011
2 Replies

3. UNIX for Dummies Questions & Answers

If + multiple conditions

Hello Unix-Forums! It has been a long time since my last post, but finally I've got a new question: I know in case you can use multiple patterns by case $var in a|b|c|ab) and so on. But how would I place an OR between if ] then ... if ] then ... I want to execute the "..." if... (3 Replies)
Discussion started by: intelinside
3 Replies

4. UNIX for Dummies Questions & Answers

Nested if with multiple conditions

Deal Experts I am working on a script to find a date which is 7 days older and follwoing is my approach #!/bin/sh Yr=`date +"%Y"` Mn=`date +"%m"` Md=28 Da=`date +"%d"` echo $Yr echo $Mn echo $Da var1=$Yr$Mn$Da echo "before" $var1 if expr $Da > 7 then Da=`expr $Da - 7`... (3 Replies)
Discussion started by: sweetnsourabh
3 Replies

5. Shell Programming and Scripting

multiple conditions in 'if clause'

Hi, When i use the below code snippet in my shell script OFC_10.sh: if then echo "Success" exit 2 elif then echo "Failure" exit 6 I get the error message: ./OFC_10.sh: line 41: ' ./OFC_10.sh: line 45: ' Line 41 is the line where If loop starts and line 45 is... (2 Replies)
Discussion started by: shrutihardas
2 Replies

6. Shell Programming and Scripting

specifying multiple conditions in AWK

how can i specify more than 1 consition in the following AWK statament?? i.e. if $2 is ABCD and $3 is MNOP and $4 is KLPM similarly for OR #!/bin/ksh awk -F '' ' $2 == "ABCD" { print $2, $3;}' file.xml (2 Replies)
Discussion started by: skyineyes
2 Replies

7. Shell Programming and Scripting

Help regarding multiple conditions

Hi All, I am new to shell scripting. Can any one say what is wrong in this if statement, that uses multiple conditions if then *************** else if ( -z $pcs && "$night_time_calc" > "$night_time" ) then ******************************** ... (4 Replies)
Discussion started by: ssenthilkumar
4 Replies

8. Shell Programming and Scripting

multiple if conditions

Guys, Im trying to have a script that evaluates multiple conditions : test.sh: if then echo "host $1" else if then echo "host $1" else echo $1 not valid exit 1 fi when I do ./test.sh brazil1 I get: (4 Replies)
Discussion started by: bashshadow1979
4 Replies

9. UNIX for Dummies Questions & Answers

multiple conditions in if/then

Hello, I am having trouble with the syntax with a conditional statement in a BASH script involving multiple conditions. Any suggestions would be greatly appreciated! if ; then array=("${array}" "$dnNum" ) fi i receive this error: ./testscript: ' (4 Replies)
Discussion started by: grandtheftander
4 Replies

10. Shell Programming and Scripting

multiple conditions in if statements

Hi all, I'm confused about the proper syntax for multi-conditional if then statements. I'm trying to set limitations on info input on the command line.. i.e. if ] ;then $x=$vr1 else print "You have entered an invalid option." Can someone please clue me in on what is wrong with my syntax;... (3 Replies)
Discussion started by: tim mauger
3 Replies
Login or Register to Ask a Question