pdksh - the Public Domain Korn Shell

PD-ksh is a clone of the AT&T Korn shell. At the moment, it has most of the ksh88 features, not much of the ksh93 features, and a number of its own features. pdksh was initially created by Eric Gisin using Charles Forsyth's public domain V7 shell as a base as well as parts of the BRL shell. Since then a number of people have maintained and contributed to it (see CONTRIBUTORS for details); it is currently maintained by Michael Rendell.

pdksh's strong points are:

Its weak points are that there are still a few differences from ksh88 (the major one is that `echo hi | read x' does not set x in the current shell - the read is done in a separate process). See the NOTES file in the distribution for more details.

Here is the pdksh man page (currently has no hyperlinks, but these will hopefully be added soon).
Note: this is a single large file (~140k).


Current versions

The current stable version is pdksh-5.2.14 (or pdksh-5.2.14). The following are files from this distribution:

There is also an unstable version - check the ftp site (or http site) and look for pdksh-unstable-*. The unstable versions include bug fixes and enhancements that have not been throughly tested yet - they are provided to allow other pdksh developers to see what is going on behind the scenes and to allow the adventurous to test and report problems before the changes are put into a `stable' version.


FTP site

The pdksh source distribution can be obtained from the directory ftp://ftp.cs.mun.ca/pub/pdksh/ (or http://www.cs.mun.ca/~michael/pdksh/files). This directory also contains:

MIRROR sites

The following sites have been known to mirror the above directory:

Reporting Bugs

You can send bug reports, fixes, and enhancements to pdksh@cs.mun.ca (please don't assume I will see bug reports that are posted to some newsgroup or mailing list - I probably won't). If you are reporting a bug (with or without a fix), please include as well as the following, if relevant (if you aren't sure, include them)

BTW, the most frequently reported bug is

echo hi | read a; echo $a   # Does not print hi
I'm aware of this and there is no need to report it.

Year 2000 (y2k) Issues

There are no y2k problems in pdksh. This is simply because the shell does not use `dates' (year, month, day, ..). Time, when it is used, is stored and manipulated as a 32 bit signed integer (the standard unix time representation), which means you need to worry in 2038.