Source of shell.inc.pl
use utf8;
use strict;
+{
agents => {
sh => {
name => "Bourne shell",
os => 'v7',
},
bash => {
name => "GNU Bourne-Again SHell",
os => 'linux',
},
csh => {
name => "C Shell",
},
tcsh => {
name => "Tenex C Shell",
os => 'freebsd',
},
ksh => {
name => "AT&T KornShell",
},
es => {
name => "Extensible Shell",
},
rc => {
name => "Run Commands",
os => 'plan9',
},
zsh => {
name => "Z shell",
},
},
feature => [
{
title => "Job control",
description => "",
links => [
{
title =>
url => '',
},
],
support => {
bash => {},
csh => {},
es => undef,
ksh => {},
rc => undef,
sh => undef,
tcsh => {},
zsh => {},
},
},
{
support => {
bash => {},
csh => {},
es => undef,
ksh => {},
rc => undef,
sh => undef,
tcsh => {},
zsh => {},
},
title => 'Aliases',
},
{
support => {
bash => {},
csh => undef,
es => {},
ksh => {},
rc => {},
sh => {
since => 0,
},
tcsh => undef,
zsh => {},
},
title => 'Shell functions',
},
{
support => {
bash => {},
csh => undef,
es => {},
ksh => {},
rc => {},
sh => {},
tcsh => undef,
zsh => {},
},
title => '"Sensible" Input/Output redirection',
},
{
support => {
bash => {},
csh => {},
es => {
alt => 'function',
},
ksh => {},
rc => {
alt => 'function',
},
sh => undef,
tcsh => {},
zsh => {},
},
title => 'Directory stack',
},
{
support => {
bash => {},
csh => {},
es => {
optional => 'requires readline',
},
ksh => {},
rc => {
optional => 'requires readline',
},
sh => undef,
tcsh => {},
zsh => {},
},
title => 'Command history',
},
{
support => {
bash => {},
csh => undef,
es => {
optional => 'requires readline',
},
ksh => {},
rc => {
optional => 'requires readline',
},
sh => undef,
tcsh => {},
zsh => {},
},
title => 'Command line editing',
},
{
support => {
bash => {},
csh => undef,
es => {
optional => 'requires readline',
},
ksh => {},
rc => {
optional => 'requires readline',
},
sh => undef,
tcsh => {
note => 'emulation is thought by many to be incomplete',
partial => 1,
},
zsh => {},
},
title => 'Vi Command line editing',
},
{
support => {
bash => {},
csh => undef,
es => {
optional => 'requires readline',
},
ksh => {},
rc => {
optional => 'requires readline',
},
sh => undef,
tcsh => {},
zsh => {},
},
title => 'Emacs Command line editing',
},
{
support => {
bash => {},
csh => undef,
es => {
optional => 'requires readline',
},
ksh => undef,
rc => {
optional => 'requires readline',
},
sh => undef,
tcsh => {},
zsh => {},
},
title => 'Rebindable Command line editing',
},
{
support => {
bash => {},
csh => {},
es => {
optional => 'requires readline',
},
ksh => {},
rc => {
optional => 'requires readline',
},
sh => undef,
tcsh => {},
zsh => {},
},
title => 'User name look up',
},
{
support => {
bash => undef,
csh => undef,
es => {
alt => 'function',
},
ksh => undef,
rc => {
alt => 'function',
},
sh => undef,
tcsh => {},
zsh => {},
},
title => 'Login/Logout watching',
},
{
support => {
bash => {},
csh => {
since => 0,
},
es => {
optional => 'requires readline',
},
ksh => {},
rc => {
optional => 'requires readline',
},
sh => undef,
tcsh => {},
zsh => {},
},
title => 'Filename completion',
},
{
support => {
bash => {},
csh => {
since => undef,
},
es => {
optional => 'requires readline',
},
ksh => {},
rc => {
optional => 'requires readline',
},
sh => undef,
tcsh => {},
zsh => {},
},
title => 'Username completion',
},
{
support => {
bash => {},
csh => {
since => undef,
},
es => {
optional => 'requires readline',
},
ksh => {},
rc => {
optional => 'requires readline',
},
sh => undef,
tcsh => {},
zsh => {},
},
title => 'Hostname completion',
},
{
support => {
bash => {},
csh => undef,
es => {
optional => 'requires readline',
},
ksh => undef,
rc => {
optional => 'requires readline',
},
sh => undef,
tcsh => {},
zsh => {},
},
title => 'History completion',
},
{
support => {
bash => undef,
csh => undef,
es => undef,
ksh => undef,
rc => undef,
sh => undef,
tcsh => {},
zsh => {},
},
title => 'Fully programmable Completion',
},
{
support => {
bash => {
alt => 'patch',
note => 'unofficial patches exist to perform this',
},
csh => undef,
es => undef,
ksh => undef,
rc => undef,
sh => undef,
tcsh => {
alt => 'function',
note => 'This can be done via the shells programmable completion mechanism.',
},
zsh => {
alt => 'function',
note => 'This can be done via the shells programmable completion mechanism.',
},
},
title => 'Mh Mailbox completion',
},
{
support => {
bash => undef,
csh => undef,
es => undef,
ksh => {},
rc => undef,
sh => undef,
tcsh => undef,
zsh => {},
},
title => 'Co Processes',
},
{
support => {
bash => {},
csh => {},
es => undef,
ksh => {},
rc => undef,
sh => undef,
tcsh => {},
zsh => {},
},
title => 'Builtin artithmetic evaluation',
},
{
support => {
bash => {},
csh => undef,
es => undef,
ksh => {},
rc => undef,
sh => undef,
tcsh => {},
zsh => {},
},
title => 'Can follow symbolic links invisibly',
},
{
support => {
bash => undef,
csh => undef,
es => undef,
ksh => undef,
rc => undef,
sh => undef,
tcsh => {},
zsh => {},
},
title => 'Periodic command execution',
},
{
support => {
bash => {},
csh => undef,
es => {},
ksh => {},
rc => {},
sh => undef,
tcsh => {},
zsh => {},
},
title => 'Custom Prompt (easily)',
},
{
support => {
bash => undef,
csh => undef,
es => undef,
ksh => undef,
rc => undef,
sh => undef,
tcsh => undef,
zsh => {},
},
title => 'Sun Keyboard Hack',
},
{
support => {
bash => undef,
csh => undef,
es => undef,
ksh => undef,
rc => undef,
sh => undef,
tcsh => {},
zsh => {},
},
title => 'Spelling Correction',
},
{
support => {
bash => {
since => undef,
},
csh => undef,
es => {},
ksh => undef,
rc => {},
sh => undef,
tcsh => undef,
zsh => {},
},
title => 'Process Substitution',
},
{
support => {
bash => 'sh',
csh => 'csh',
es => 'rc',
ksh => 'sh',
rc => 'rc',
sh => 'sh',
tcsh => 'csh',
zsh => 'sh',
},
title => 'Underlying Syntax',
},
{
support => {
bash => {},
csh => undef,
es => {},
ksh => {
alt => 'patch',
note => "A version called 'pdksh' is freely available, but does not have the full functionality of the AT&T version.",
},
rc => {},
sh => undef,
tcsh => {},
zsh => {},
},
title => 'Freely Available',
},
{
support => {
bash => {},
csh => {},
es => {
alt => 'function',
},
ksh => {},
rc => {
alt => 'function',
},
sh => undef,
tcsh => {},
zsh => {},
},
title => 'Checks Mailbox',
},
{
support => {
bash => undef,
csh => undef,
es => undef,
ksh => undef,
rc => undef,
sh => undef,
tcsh => {},
zsh => {},
},
title => 'Tty Sanity Checking',
},
{
support => {
bash => {},
csh => undef,
es => {},
ksh => {},
rc => {},
sh => {},
tcsh => {},
zsh => {},
},
title => 'Can cope with large argument lists',
},
{
support => {
bash => {
alt => 'config',
note => 'Only by specifying a file via the ENV environment variable.',
},
csh => {},
es => undef,
ksh => {
alt => 'config',
note => 'Only by specifying a file via the ENV environment variable.',
},
rc => undef,
sh => undef,
tcsh => {},
zsh => {},
},
title => 'Has non-interactive startup file',
},
{
support => {
bash => {},
csh => {},
es => undef,
ksh => {
alt => 'config',
note => 'Only by specifying a file via the ENV environment variable.',
},
rc => undef,
sh => undef,
tcsh => {},
zsh => {},
},
title => 'Has non-login startup file',
},
{
support => {
bash => {},
csh => {},
es => {},
ksh => undef,
rc => {},
sh => undef,
tcsh => undef,
zsh => {},
},
title => 'Can avoid user startup files',
},
{
support => {
bash => {},
csh => undef,
es => undef,
ksh => {},
rc => undef,
sh => undef,
tcsh => undef,
zsh => undef,
},
title => 'Can specify startup file',
},
{
support => {
bash => undef,
csh => undef,
es => {},
ksh => undef,
rc => undef,
sh => undef,
tcsh => undef,
zsh => undef,
},
title => 'Low level command redefinition',
},
{
support => {
bash => undef,
csh => undef,
es => {},
ksh => undef,
rc => {},
sh => undef,
tcsh => undef,
zsh => undef,
},
title => 'Has anonymous functions',
},
{
support => {
bash => undef,
csh => {},
es => {},
ksh => {},
rc => {},
sh => undef,
tcsh => {},
zsh => {},
},
title => 'List Variables',
},
{
support => {
bash => {},
csh => undef,
es => {},
ksh => {},
rc => {},
sh => {},
tcsh => undef,
zsh => {},
},
title => 'Full signal trap handling',
},
{
support => {
bash => {},
csh => {},
es => {
alt => 'function',
},
ksh => {},
rc => undef,
sh => undef,
tcsh => {},
zsh => {},
},
title => 'File no clobber ability',
},
{
support => {
bash => {},
csh => undef,
es => {},
ksh => {},
rc => {},
sh => undef,
tcsh => undef,
zsh => {},
},
title => 'Local variables',
},
{
support => {
bash => undef,
csh => undef,
es => {},
ksh => undef,
rc => undef,
sh => undef,
tcsh => undef,
zsh => undef,
},
title => 'Lexically scoped variables',
},
{
support => {
bash => undef,
csh => undef,
es => {},
ksh => undef,
rc => undef,
sh => undef,
tcsh => undef,
zsh => undef,
},
title => 'Exceptions',
},
],
}