Errors in if conditions with to many OR conditions


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Errors in if conditions with to many OR conditions
# 1  
Old 11-28-2012
Errors in if conditions with to many OR conditions

Hi ALL

I have a script where in i need to check for several values in if conditons but when i execute the script it throws error such as "TOO MANY ARGUMENTS"
Code:
if [ $var1 -gt 1500 -o $var2 -gt 1000 -o $var3 -gt 1000 -o $var4 -gt 1000 -o $var5 -gt 1000 ]
then

msg="BM VAR Issue :: bmaRequestVAR=$bmaRequestVAR , nltBMVAR=$nltBMVAR , bmaResponseVAR=$bmaResponseVAR , bmResponseVAR=$bmResponseVAR , bmRequestVAR=$bmRequestVAR "
SendSms "$msg"
wget -q --no-proxy "http://10.10.1.8/cgi-bin/provider?host_name=LION_MACHINE&svc_desc=MESSAGE_VAR_BM_LION&return_code=0&plugin_output=$msg"
echo "BM Q message sent" >>$monitorLogPath
echo $msg >>$monitorLogPath
fi

ERROR is as follows
Code:
++ '[' 0 -gt 1500 -o -gt 1000 ']'
./QQQ.sh: line 50: [: too many arguments


Last edited by Scott; 11-28-2012 at 01:04 AM.. Reason: Code tags
# 2  
Old 11-28-2012
What about using ||?

use sth like this

Code:
 if [[ $var1 -gt 1500 || $var2 -gt 1000 ]]

# 3  
Old 11-28-2012
I have tested as below. It seems you have a problem in var# variable.
Please check v$varX variable if values are assigned to the varX variable.
Code:
# cat sam.sh
var1=2000
var2=2000
var3=3000
var4=4000
var5=5000
if [ $var1 -gt 1500 -o $var2 -gt 1000 -o $var3 -gt 1000 -o $var4 -gt 1000 -o $var5 -gt 1000 ]
then
  echo "test"
fi
# ./sam.sh
test

Cheers,

Moderator's Comments:
Mod Comment Please use code tags.
# 4  
Old 11-28-2012
@Pamu : no luck yet
@joseph : I did try the way you said, but still there is an issue.
# 5  
Old 11-28-2012
The part of if below has no issue.
Code:
 
if [ $var1 -gt 1500 -o $var2 -gt 1000 -o $var3 -gt 1000 -o $var4 -gt 1000 -o $var5 -gt 1000 ]

Error msg said line 50 so I guess your issue might be in another part of your script.
# 6  
Old 11-28-2012
The script is giving too many arguments error because one or more of your variable value is not set:-
Code:
++ '[' 0 -gt 1500 -o ... -gt 1000 ']'
./QQQ.sh: line 50: [: too many arguments

You can put a check before comparison to see if the variable values are set and then proceed to avoid this error.
# 7  
Old 11-28-2012

From the POSIX spec for test (a.k.a. [):
"the -a and -o binary primaries and the '(' and ')' operators have been marked obsolescent"

Use multiple tests joined by && or ||:
Code:
if [ $x -gt 2 ] || [ $y -lt 99 ] || [ ... ]
then
   :
fi

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

How to match the below conditions?

Hello All, I have 2 files with around 2k records.. I am lost how to build a script to create another file with the below:confused::eek: Match Condition1: File1's 12th Columns data should exact match with File2's 19th Column's data Match Condition2: File1's 28th Column's data format is... (12 Replies)
Discussion started by: ailnilanjan
12 Replies

2. Shell Programming and Scripting

Conditions in if

I'm using the below one.. #!/bin/ksh File=$3 if ; then echo "Script" elif ] ;then echo "Passed k or f option" else "Please check the Input passed" fi Command line argument is "k" or -f and file is exist then... (3 Replies)
Discussion started by: Roozo
3 Replies

3. Shell Programming and Scripting

Errors in if conditions.....

#if if then echo $varNO >> AgriN.csv fi done < data The above script throws error such as integer expression expected. How do i rectify that?? (4 Replies)
Discussion started by: nikhil jain
4 Replies

4. Shell Programming and Scripting

awk three conditions

I'm having a problem pulling UID's from data. The data outputs a user's UID in one of three ways: 1. Error User user_name already assigned with <UID> 2. Success <UID> reserved for user_name 3. <a load of crap because there was a db failure yet somehow the UID is still in there> I typically... (5 Replies)
Discussion started by: MaindotC
5 Replies

5. Shell Programming and Scripting

If conditions need

Dear Expert, Below code is for to take the backup of database by daily time stamp. I need vital help to make my script automatic sending me email if it sucess or fail. echo on @REM Seamonkey's quick date batch (MMDDYYYY format) @REM Setups %date variable @REM First parses month, day, and... (6 Replies)
Discussion started by: Alone
6 Replies

6. Shell Programming and Scripting

IF OR with two conditions

I have this IF working fine, testing if a char is a digit: if ; then _VALUE=$_VALUE$_CHAR else _ISDIGIT="false" fi Then I add a second condition to test if the char is either a digit or a * if ]; then _VALUE=$_VALUE$_CHAR ... (11 Replies)
Discussion started by: Flavius
11 Replies

7. Shell Programming and Scripting

While with three conditions

Currently this is what I am trying while || && ]; do I want to continue if the first condition or both the second and third are true but I am getting a too many arguments error. Can someone help me out? (5 Replies)
Discussion started by: whdr02
5 Replies

8. Shell Programming and Scripting

conditions

./script 89 The script will extract the last digit of the input parameter. example, that is 4. This will be compared to the last digit of the current day of the month ( like day 14; that is 4). A message will displayed on the screen indicating if the digits are the same or not. (1 Reply)
Discussion started by: singh is king
1 Replies

9. UNIX for Dummies Questions & Answers

2 or more if conditions

Hello, I have a file as follows: col no:1 2 3 4 5 6 7 8 9 10 11 a 4 226 226 ch:95024048-95027592, 1y224 of 3545 223 224 ident b 53 235 235 ch:148398-148401255, 1y184 of 3187 180 186 ident awk... (3 Replies)
Discussion started by: dr_sabz
3 Replies

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