If the following command raises an error, you have ksh88 (or pdksh or mksh, in the last two implementations there is a variable KSH_VERSION), otherwise you have ksh93:
I was wondering if there is anyway to use the curses library with ksh88. I saw Shell Curses function library which says I can use /usr/local/functions/shellcurses on ksh93 but I am on ksh88. I am on a HP-UX box. (0 Replies)
Hello,
I need ksh88 for my linux system - and I don't want pdksh.
Possible to get original ksh 88 binaries or source ?
(I don't need ksh93 which is available)
thanks
Vilius (1 Reply)
I have to use KSH88, so going to BASH, perl etc. is not an option.
Below is a much simplified verison of what I am doing (aka ignore my cut command and i not increasing) :)
i=1
BIGSTRING="one two three four five six seven eight"
while ]; do
typeset "STRING$i=`echo $BIGSTRING| cut -d' '... (8 Replies)
Hi,
With:
# VALUES="one~two~~~"
# echo $VALUES | awk 'BEGIN {FS="~"} {print NF}'
5
I can determine the number of fields.
How to determine the number of fields with a value ?
In this case 2.
Thanks in advance,
ejdv (6 Replies)
Hi I tried the following string comparison script in Ksh88
#!/bin/ksh
str1='aC'
str2='ABC'
if
then
echo "Equal"
else
echo "Not Equal"
fi
Though str1 and str2 are not equal the script output says Equal .
Please correct me
Thanks (2 Replies)
I'm using Ksh88 .
I've last day files in one directory and current month files in another directory , having the same naming convention.
Now i need to compare these folders size , if there is no change in these files then no action to be performed
else if there is a change then i need to call... (1 Reply)
Hi I tried the following code to FTP the files from test server to dev
#!/bin/ksh
DST=/home/files
cd $DST
ftp -inv 'test_serv101' << EOF
quote USER test
quote PASS test
# File Path on test server
cd /etc/home/Or_Files
ascii
mget curMonth* $DST
quit
EOF
when i try the above code it... (4 Replies)
Hello,
I want to pick a random element from a list, and created these 2 lines, which work very well in ksh93. Unfortunately, I get this "bad substitution" message in ksh88.
I'm wondering if there's an equivalent to the second line of my script.. or if I have to install ksh93 to make this... (8 Replies)
Hi Experts,
I have several shell scripts that have been developed on a Linux box for korn ksh93.
If we want to run this software on an AIX 6.1 box that runs ksh88 by default can we just change the she-bang line to reference /bin/ksh93 which ships with AIX as its "enhanced shell" to ensure... (6 Replies)
Discussion started by: Keith Turley
6 Replies
LEARN ABOUT CENTOS
lksh
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