Sponsored Content
Top Forums Shell Programming and Scripting Logical expression in POSIX compliant Korn Shell Post 302604642 by Corona688 on Monday 5th of March 2012 02:00:14 PM
Old 03-05-2012
Quote:
Originally Posted by ysrini
On my login i default to:
$ echo $SHELL
/usr/bin/sh
$

Now what is this shell called?
Depends what sh they have... :shrug: The generic filename doesn't tell you much.

Quote:
Can every unix/linux box can have their 'sh' be bash or korn or csh ... or is 'sh' is it's own shell and independant of bash, korn, ...?
On some linux, sh is BASH, on others its DASH. Someone might even custom-configure their system to have it be one of the various kinds of KSH and there'd be nothing wrong with that. It can be any Bourne shell.

But they ought to be all compatible with posix SH even if they're not restricted to posix SH features. That's what POSIX is there for -- a coherent standard that ought to be obeyed by UNIX in general, even if other features are offered. So if you write your code for posix SH, it should be portable.

sh will never, ever, ever be csh though, becase sh is supposed to be a bourne shell -- and csh is not a bourne in any way. Even on systems which feature csh prevalently, like some BSD's, csh does not get shoehorned under the guise of sh. Only the very most trivial csh code bears any resemblance to bourne shell code.

Last edited by Corona688; 03-05-2012 at 03:06 PM..
 

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
LKSH(1) 						    BSD General Commands Manual 						   LKSH(1)

NAME
lksh -- Legacy Korn shell built on mksh SYNOPSIS
lksh [-+abCefhiklmnprUuvXx] [-+o opt] [-c string | -s | file [args ...]] DESCRIPTION
lksh is a command interpreter intended exclusively for running legacy shell scripts. It is built on mksh; refer to its manual page for details on the scripting language. It is recommended to port scripts to mksh instead of relying on legacy or idiotic POSIX-mandated behav- iour, since the MirBSD Korn Shell scripting language is much more consistent. LEGACY MODE
lksh has the following differences from mksh: o lksh is not suitable for use as /bin/sh. o There is no explicit support for interactive use, nor any command line editing or history code. Hence, lksh is not suitable as a user's login shell, either; use mksh instead. o The KSH_VERSION string identifies lksh as ``LEGACY KSH'' instead of ``MIRBSD KSH''. o lksh only offers the traditional ten file descriptors to scripts. o lksh uses POSIX arithmetics, which has quite a few implications: The data type for arithmetics is the host ISO C long data type. Signed integer wraparound is Undefined Behaviour. The sign of the result of a modulo operation with at least one negative operand is unspeci- fied. Shift operations on negative numbers are unspecified. Division of the largest negative number by -1 is Undefined Behaviour. The compiler is permitted to delete all data and crash the system if Undefined Behaviour occurs. o The rotation arithmetic operators are not available. o The shift arithmetic operators take all bits of the second operand into account; if they exceed permitted precision, the result is unspecified. o The GNU bash extension &> to redirect stdout and stderr in one go is not parsed. o The mksh command line option -T is not available. o Unless set -o posix is active, lksh always uses traditional mode for constructs like: $ set -- $(getopt ab:c "$@") $ echo $? POSIX mandates this to show 0, but traditional mode passes through the errorlevel from the getopt(1) command. o lksh, unlike AT&T UNIX ksh, does not keep file descriptors > 2 private. SEE ALSO
mksh(1) https://www.mirbsd.org/mksh.htm https://www.mirbsd.org/ksh-chan.htm CAVEATS
lksh tries to make a cross between a legacy bourne/posix compatibl-ish shell and a legacy pdksh-alike but ``legacy'' is not exactly speci- fied. The set built-in command does not have all options one would expect from a full-blown mksh or pdksh. Talk to the MirOS development team using the mailing list at <miros-mksh@mirbsd.org> or the #!/bin/mksh (or #ksh) IRC channel at irc.freenode.net (Port 6697 SSL, 6667 unencrypted) if you need any further quirks or assistance, and consider migrating your legacy scripts to work with mksh instead of requiring lksh. MirBSD May 2, 2013 MirBSD
All times are GMT -4. The time now is 04:47 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy