The following module was proposed for inclusion in the Module List:
modid: Shell::Cmd
DSLIP: bdpOp
description: Run shell commands with enhanced support
userid: SBECK (Sullivan Beck)
chapterid: 4 (Operating_System_Interfaces)
communities:
similar:
rationale:
A very comman use of perl is to act as a wrapper around shell
commands where it is used to prepare the shell commands, execute
them, and deal with the resulting output. Even where the bulk of the
work is actually done in the perl script, creating small shell
scripts within it to do some portion of the task is common.
In the simplest form, running shell commands can be done very
simply using the system() call, backticks, or several other ways,
but I usually find myself wanting to do a bit more, and I frequently
ended up writing a subroutine to run the shell command(s) with added
functionality.
This module is designed to take a list of shell commands and
automatically add some common desirable functionality to them
including:
o Keeping or discarding STDOUT and STDERR (in any combination). o
Echoing commands if desired. o Dry-run mode where the shell script
is created, but not actually run. o Error trapping and handling at a
per-command level. o Setting up environment variables for the
commands. o Alternate commands that do the same thing so that you
can run the scripts more easily on multiple platforms. o Running the
commands locally, or via. ssh on a remote host (or hosts). o When
running via ssh on multiple hosts, support serial or parallel
execution. o Handle quotes, dollar signs, etc. correctly, especially
when passing the command to ssh.
This module is designed to run multiple commands in a single shell,
adding standard shell commands automatically to handle the desired
functionality.
I looked through all of the modules under the Shell and System
namespace, and didn't find anything that did many of these things
(though there are a number that can deal with STDOUT/STDERR
effectively, and a few SSH modules that do some of the SSH work).
enteredby: SBECK (Sullivan Beck)
enteredon: Thu Sep 12 14:46:04 2013 UTC
The resulting entry would be:
Shell::
::Cmd bdpOp Run shell commands with enhanced support SBECK
Thanks for registering,
--
The PAUSE
PS: The following links are only valid for module list maintainers:
Registration form with editing capabilities:
https://pause.perl.org/pause/authenquery?ACTION=add_mod&USERID=8ad00000_027ca7de2e1bc15b&SUBMIT_pause99_add_mod_preview=1
Immediate (one click) registration:
https://pause.perl.org/pause/authenquery?ACTION=add_mod&USERID=8ad00000_027ca7de2e1bc15b&SUBMIT_pause99_add_mod_insertit=1
Peek at the current permissions:
https://pause.perl.org/pause/authenquery?pause99_peek_perms_by=me&pause99_peek_perms_query=Shell%3A%3ACmd