Sponsored Content
Top Forums Shell Programming and Scripting Logical expression in POSIX compliant Korn Shell Post 302602977 by ysrini on Tuesday 28th of February 2012 09:39:46 PM
Old 02-28-2012
Logical expression in POSIX compliant Korn Shell

Hi,
i want to check if a variable var1 is not a or b or c
pseudo code:
If NOT (var1 = a or var1 = b or var1 = c)
then
...
fi

I want to use POSIX complaint Korn shell, and for string comparison
For the following code, logical.sh
Code:
#!/usr/bin/ksh
var="j"
echo "Var : $var"

if ! { [ "$var" = a ] || [ "$var" = b ] || [ "$var" = b ] ;}
then    
   echo "var not in the list"
else    
   echo "var in the list"
fi

var="b"
echo "Var : $var"

if ! { [ "$var" = a ] || [ "$var" = b ] || [ "$var" = b ] ;}
then    
   echo "var not in the list"
else    
   echo "var in the list"
fi

I gave execute permissions to the script, however it only seems to run good when run by 'sh ' and not by the script itself.
We run all our jobs without specifying 'sh ' ahead

$ chmod 777 logical.sh
$ logical.sh
Var : j
./logical.sh[3]: syntax error at line 6 : `}' unexpected
$ sh logical.sh
Var : j
var not in the list
Var : b
var in the list
$

Where am i going wrong?
Is it necessary to enclose the variable in double quotes but not the literals on the other side of comparison operator?

Thanks,
-srinivas yelamanchili
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Logical AND in shell commands

Hi:confused:, I have a file that contains : +-----------------------------------------------------------------------------+ LABEL: super1_fix EFIX FILES: 1 ABSTRACT: epkg for touch command PRE-REQUISITES: no PACKAGER VERSION: 7 REBOOT REQUIRED: no BUILD BOOT... (4 Replies)
Discussion started by: vijaya2006
4 Replies

2. Shell Programming and Scripting

Using Logical Expression in an AWK statement

I'm would to create a script that would give me the results below. Please note the spaces in the log file are actually commas(",".) Log file Data 0:00 21:15 899 43 31 12 25.39 0:00 21:20 736 34 19 15 35.39 0:00 21:20 776 41 28 13 ... (3 Replies)
Discussion started by: ravzter
3 Replies

3. Shell Programming and Scripting

nested logical expression in bash shell

Please tell me how to nest logical expressions in bash. I would like to nest logical expressions for arguments of the "test" command on bash. The following pseudo-code shows my intention. // pseudo code if (exp1 AND (exp2 OR exp3)) { Output true; } else { Output false; } ... (11 Replies)
Discussion started by: LessNux
11 Replies

4. Shell Programming and Scripting

Command substitution inside of a variable expression (AIX, KORN)

Hello all. This is my first post/question on this site. I’m a new Systems Analyst with previous experience with BASH. Although now I'm using AIX, and I’m trying to get a feel for the Korn shell (for those of you that don’t know AIX only uses the KORN shell). I hope I put this into the correct... (10 Replies)
Discussion started by: sydox
10 Replies

5. UNIX for Dummies Questions & Answers

Logical OR in shell script

I have code as follows to perform some validations on C++ and Javascript files: if || || ; then However, when I want to add other extensions as well, say "py" or "sql", then the repeated OR starts to look contrived. I know I can use the -o operator to abbreviate the code a little bit, but... (14 Replies)
Discussion started by: figaro
14 Replies

6. Shell Programming and Scripting

Is Rule 7 of POSIX shell grammar rules written correctly?

The POSIX shell standard grammar rules are at Shell Command Language I am trying to understand Rule 7 and I don't. I think there may be some mistakes there. I am not complaining about the standard; rather, I am concerned that my perception is wrong, and I don't understand something important.... (3 Replies)
Discussion started by: Mark_Galeck
3 Replies

7. Shell Programming and Scripting

Pure POSIX shell scripting...

Hi all... This is more of a concensus question than help... As many of you know I am experimenting with the limitations of Pure POSIX shell scripting. Q: Is the directory /bin considered part of the Pure POSIX shell or must I stick entirely with the builtins only? The reason is I... (2 Replies)
Discussion started by: wisecracker
2 Replies

8. Shell Programming and Scripting

Equivalent to let command in POSIX shell

Hi all, I am learning POSIX shell programming, and the book I read, uses the let command for integer arithmetic. I have downloaded and use the shellcheck program on Linux. This programs says: In POSIX sh, 'let' is undefined. See the screenshot attached. What is the POSIX... (1 Reply)
Discussion started by: johnprogrammer
1 Replies

9. Shell Programming and Scripting

Q: Is SQRT(n) possible in a POSIX compliant shell? A: Yes within limits.

Hi all... This is just a fun project to see if it is possible to get a square root of a positive integer from 1 to 9200000 to 6 decimal places on a 64 bit architecture machine. It is coded around dash and the results show the values from 0 to 10000. Complex numbers can easily be catered for by... (3 Replies)
Discussion started by: wisecracker
3 Replies

10. OS X (Apple)

Generate a random number in a fully POSIX compliant shell, 'dash'...

Hi all... Apologies for any typos, etc... This took a while but it didn't beat me... Although there are many methods of generating random numbers in a POSIX shell this uses integer maths and a simple C source to create an executable to get epoch to microseconds accuracy if it is needed. I take... (8 Replies)
Discussion started by: wisecracker
8 Replies
FLOATVAL(3)								 1							       FLOATVAL(3)

floatval - Get float value of a variable

SYNOPSIS
float floatval (mixed $var) DESCRIPTION
Gets the float value of $var. PARAMETERS
o $var - May be any scalar type. floatval(3) should not be used on objects, as doing so will emit an E_NOTICE level error and return 1. RETURN VALUES
The float value of the given variable. Empty arrays return 0, non-empty arrays return 1. Strings will most likely return 0 although this depends on the leftmost characters of the string. The common rules of float casting apply. EXAMPLES
Example #1 floatval(3) Example <?php $var = '122.34343The'; $float_value_of_var = floatval($var); echo $float_value_of_var; // 122.34343 ?> Example #2 floatval(3) non-numeric leftmost characters Example <?php $var = 'The122.34343'; $float_value_of_var = floatval($var); echo $float_value_of_var; // 0 ?> SEE ALSO
boolval(3), intval(3), strval(3), settype(3), Type juggling. PHP Documentation Group FLOATVAL(3)
All times are GMT -4. The time now is 02:17 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy