IF OR with two conditions


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting IF OR with two conditions
# 1  
Old 11-25-2010
IF OR with two conditions

I have this IF working fine, testing if a char is a digit:

Code:
      if [ $_CHAR -eq $_CHAR 2>/dev/null ]; 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 *

Code:
      if [[ $_CHAR -eq $_CHAR 2>/dev/null || $_CHAR == "*" ]]; then
         _VALUE=$_VALUE$_CHAR
      else
         _ISDIGIT="false"
      fi

I get this:

Code:
./statusSIGTRAN_TSP5.sh: line 35: syntax error in conditional expression
./statusSIGTRAN_TSP5.sh: line 35: syntax error near `2>'
./statusSIGTRAN_TSP5.sh: line 35: `      if [[ $_CHAR -eq $_CHAR 2>/dev/null || $_CHAR == "*" ]]; then'

What's wrong?
# 2  
Old 11-25-2010
You do not need the "2>/dev/null" part in a boolean (if) construct. It doesn't evaluate.
And. I do not know why your first line works. It should not.

---------- Post updated at 09:01 ---------- Previous update was at 08:45 ----------

FWIW:
Code:
#!/bin/ksh
isdigit()
{
		case "$1" in
		  ?(1|2|3|4|5|6|7|8|9|0)) ok=1;;
		  *) ok=0;;
		esac
		echo $ok 
} 

for i in 1 2 3 4 a d
do
  echo "isdigit $i returns $(isdigit $i)"
done

is a traditional way to test a given character for character type, in this case a digit.
Traditional meaning "use the case statement"
This User Gave Thanks to jim mcnamara For This Post:
# 3  
Old 11-25-2010
try with "-o" option instead of "||".

So,

Quote:
if [ $_CHAR == $_CHAR 2>/dev/null -o $_CHAR == "*" ]; then
This User Gave Thanks to panyam For This Post:
# 4  
Old 11-26-2010
I don't know what the dev/null does, got the example from the internet and it doesn't work without it:

Code:
 
if [ $_CHAR -eq $_CHAR ]; then
 
./test.sh: line 23: [: -: integer expression expected
34622991111
./test.sh: line 23: [: -: integer expression expected
34622991211
./test.sh: line 23: [: -: integer expression expected
34622999213
./test.sh: line 23: [: too many arguments

# 5  
Old 11-26-2010
Do not put 2>/dev/null inside the brackets
This User Gave Thanks to Scrutinizer For This Post:
# 6  
Old 11-26-2010
Quote:
Originally Posted by panyam
try with "-o" option instead of "||".

So,
This is getting more and more awkward. -o option works from a syntax point of view, but the expression doesn't return true when it encounters a star.

Furthermore:

Code:
      if [$_CHAR == "*" ]; then
         _VALUE=$_VALUE$_CHAR
      else
         _ISDIGIT="false"
      fi

./test.sh: line 23: [3: command not found
./test.sh: line 23: [3: command not found
./test.sh: line 23: [3: command not found
./test.sh: line 23: [*: command not found

Really annoying crap
# 7  
Old 11-26-2010
Put a space between [ and $
This User Gave Thanks to Scrutinizer For This Post:
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. 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

2. 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

3. Shell Programming and Scripting

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" if then msg="BM VAR Issue :: bmaRequestVAR=$bmaRequestVAR , nltBMVAR=$nltBMVAR , bmaResponseVAR=$bmaResponseVAR ,... (10 Replies)
Discussion started by: nikhil jain
10 Replies

4. Shell Programming and Scripting

Zenity, While, and Conditions

All, I'm having fighting a losing battle with what I though would be simple. My goal is this: Show a zenity progress or info dialog until the system obtains an ip address, then close the dialog and continue through the rest of the script. Right now I've got the following: ip=`ifconfig |... (2 Replies)
Discussion started by: timbrammer91091
2 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

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

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

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. 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

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