NAME
    Term::Shell::Enhanced - More functionality for Term::Shell

VERSION
    version 1.100820

SYNOPSIS
      use Term::Shell::Enhanced;
      my $shell = Term::Shell::Enhanced->new;
      $shell->print_greeting;
      $shell->cmdloop;

DESCRIPTION
    This class subclasses Term::Shell and adds some functionality.

METHODS
  DEFAULTS
    FIXME

  PROMPT_VARS
    FIXME

  catch_run
    FIXME

  cmd
    FIXME

  expand
    FIXME

  fini
    FIXME

  get_history_filename
    FIXME

  getopt
    FIXME

  help_alias
    FIXME

  help_apropos
    FIXME

  help_cd
    FIXME

  help_echo
    FIXME

  help_eval
    FIXME

  help_pwd
    FIXME

  help_quit
    FIXME

  help_set
    FIXME

  init
    FIXME

  postloop
    FIXME

  precmd
    FIXME

  print_greeting
    FIXME

  prompt_str
    FIXME

  run_
    FIXME

  run_alias
    FIXME

  run_apropos
    FIXME

  run_cd
    FIXME

  run_echo
    FIXME

  run_pwd
    FIXME

  run_quit
    FIXME

  run_set
    FIXME

  smry_alias
    FIXME

  smry_apropos
    FIXME

  smry_cd
    FIXME

  smry_echo
    FIXME

  smry_eval
    FIXME

  smry_pwd
    FIXME

  smry_quit
    FIXME

  smry_set
    FIXME

FEATURES
    The following features are added:

    "history"
        When the shell starts up, it tries to read the command history from
        the history file. Before quitting, it writes the command history to
        the history file - it does not append to it, it overwrites the file.

        The default history file name is the shell name - with non-word
        characters replaced by underscores -, followed by "_history", as a
        dotfile in $ENV{HOME}. For example, if you shell's name is "mysh",
        the default history file name will be "~/.mysh_history".

        You can override the history file name in the "DEFAULTS()", like
        this:

            use constant DEFAULTS => (
                history_filename => ...,
                ...
            );

    "alias replacement"
        See the "alias" command below.

    "prompt strings"
        When subclassing Term::Shell::Enhanced, you can define how you want
        your prompt to look like. Use "DEFAULTS()" to override this.

            use constant DEFAULTS => (
                prompt_spec => ...,
                ...
            );

        You can use the following prompt variables:

            h    the hostname
            n    the shell name
            '#'  the command number (increased after each command)
            \\   a literal backslash

        You can extend the list of available prompt variables by defining
        your own PROMPT_VARS() - they are cumulative over the class
        hierarchy.

            use constant PROMPT_VARS => (
                key => value,
                ...
            );

        Since more elaborate prompt variables will have some interaction
        with the shell object, you might need a more elaborate
        "PROMPT_VARS()" definition:

            sub PROMPT_VARS {
                my $self = shift;
                (
                    key => $self->some_method,
                    ...
                );
            }

        The prompt variables are interpolated anew for every prompt.

        The default prompt string is:

            ': \n:\#; ',

        so if your shell is called "mysh", the default prompt looks somewhat
        like this:

           : mysh:1;

COMMANDS
    The following commands are added:

    "eval"
        You can evaluate snippets of Perl code just by putting them on a
        line beginning with "!":

          psh:~> ! print "$_\n" for keys %ENV

    "set [name[=value] ... ]"
        "set" lets you manipulate environment variables. You can view
        environment variables using "set". To view specific variables, use
        "set name". To set environment variables, use "set foo=bar".

    "cd [dir]"
          cd foo/bar/baz

        Change the current directory to the given directory. If no directory
        is given, the current value of $HOME is used.

    "pwd"
        Prints the current working directory.

    "alias [ name[=value] ... ]"
        "alias" with no arguments prints the list of aliases in the form
        "NAME=VALUE" on standard output. An alias is defined for each "NAME"
        whose "VALUE" is given.

        When you enter any command, it is checked against aliases and
        replaced if there is an alias defined for it. Only the command name
        - that is, the first word of the input line - undergoes alias
        replacement.

    "echo [arg ...]"
        Output the args.

    "quit"
        Exits the program.

    "apropos <word">
        Like the "help" command, but limits the information to commands that
        contain the given word in the command name or the summary.

INSTALLATION
    See perlmodinstall for information and options on installing Perl
    modules.

BUGS AND LIMITATIONS
    No bugs have been reported.

    Please report any bugs or feature requests through the web interface at
    <http://rt.cpan.org/Public/Dist/Display.html?Name=Term-Shell-Enhanced>.

AVAILABILITY
    The latest version of this module is available from the Comprehensive
    Perl Archive Network (CPAN). Visit <http://www.perl.com/CPAN/> to find a
    CPAN site near you, or see
    <http://search.cpan.org/dist/Term-Shell-Enhanced/>.

    The development version lives at
    <http://github.com/hanekomu/Term-Shell-Enhanced/>. Instead of sending
    patches, please fork this project using the standard git and github
    infrastructure.

AUTHOR
      Marcel Gruenauer <marcel@cpan.org>

COPYRIGHT AND LICENSE
    This software is copyright (c) 2005 by Marcel Gruenauer.

    This is free software; you can redistribute it and/or modify it under
    the same terms as the Perl 5 programming language system itself.

