lksh man page on RedHat

Man page or keyword search:  
man Server   29550 pages
apropos Keyword Search (all sections)
Output format
RedHat logo
[printable version]

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 behaviour, since
     the MirBSD Korn Shell scripting language is much more consistent.

LEGACY MODE
     lksh has the following differences from mksh:

     ·	 lksh is not suitable for use as /bin/sh.

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

     ·	 The KSH_VERSION string identifies lksh as “LEGACY KSH” instead of
	 “MIRBSD KSH”.

     ·	 lksh only offers the traditional ten file descriptors to scripts.

     ·	 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 unspecified.
	 Shift operations on negative numbers are unspecified.	Division of
	 the largest negative number by -1 is Undefined Behaviour.  The com‐
	 piler is permitted to delete all data and crash the system if Unde‐
	 fined Behaviour occurs.

     ·	 The rotation arithmetic operators are not available.

     ·	 The shift arithmetic operators take all bits of the second operand
	 into account; if they exceed permitted precision, the result is
	 unspecified.

     ·	 The GNU bash extension &> to redirect stdout and stderr in one go is
	 not parsed.

     ·	 The mksh command line option -T is not available.

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

     ·	 lksh, unlike AT&T UNIX ksh, does not keep file descriptors > 2 pri‐
	 vate.

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

     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 fur‐
     ther quirks or assistance, and consider migrating your legacy scripts to
     work with mksh instead of requiring lksh.

MirBSD				  May 2, 2013				MirBSD
[top]

List of man pages available for RedHat

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net