shell
Shell - perldoc.perl.org
perldoc.perl.org
Manual:
Overview
Tutorials
FAQs
History / Changes
Licence
Reference:
Language
Functions
Operators
Special variables
Pragmas
Core modules
Utilities
Internals
Platform specific
Links:
CPAN
Perl.org
Perl.com
Perl Buzz
Perl 5 Wiki
Perl Jobs
Perl Mongers
Perl Monks
Planet Perl
Use Perl
Contact:
Site maintained byJon Allen
(JJ)
Last updated on22 February 2008
See the project page for
more details
Show navigation
-- Perl 5.10.0 documentation --
Show toolbar
Home > Core modules > S > Shell
ShellView as PDFNAMESYNOPSISDESCRIPTIONCaveatsEscaping Magic CharactersConfigurationBUGSAUTHORNAME
Shell - run shell commands transparently within perl
SYNOPSIS
use Shell qw(cat ps cp);
$passwd = cat('new;
print $sh->ls('-l');
DESCRIPTION
Caveats
This package is included as a show case, illustrating a few Perl features.
It shouldn't be used for production programs. Although it does provide a
simple interface for obtaining the standard output of arbitrary commands,
there may be better ways of achieving what you need.
Running shell commands while obtaining standard output can be done with the
qx/STRING/ operator, or by calling open with a filename expression that
ends with |, giving you the option to process one line at a time.
If you don't need to process standard output at all, you might use system
(in preference of doing a print with the collected standard output).
Since Shell.pm and all of the aforementioned techniques use your system's
shell to call some local command, none of them is portable across different
systems. Note, however, that there are several built in functions and
library packages providing portable implementations of functions operating
on files, such as: glob, link and unlink, mkdir and rmdir,
rename, File::Compare
, File::Copy
, File::Find
etc.
Using Shell.pm while importing foo
creates a subroutine foo
in the
namespace of the importing package. Calling foo
with arguments arg1
,
arg2
,... results in a shell command foo arg1 arg2...
, where the
function name and the arguments are joined with a blank. (See the subsection
on Escaping magic characters.) Since the result is essentially a command
line to be passed to the shell, your notion of arguments to the Perl
function is not necessarily identical to what the shell treats as a
command line token, to be passed as an individual argument to the program.
Furthermore, note that this implies that foo
is callable by file name
only, which frequently depends on the setting of the program's environment.
Creating a Shell object gives you the opportunity to call any command
in the usual OO notation without requiring you to announce it in the
use Shell
statement. Don't assume any additional semantics being
associated with a Shell object: in no way is it similar to a shell
process with its environment or current working directory or any
other setting.
Escaping Magic Characters
It is, in general, impossible to take care of quoting the shell's
magic characters. For some obscure reason, however, Shell.pm quotes
apostrophes (') and backslashes (\
) on UNIX, and spaces and
quotes (") on Windows.
Configuration
If you set $Shell::capture_stderr to 1, the module will attempt to
capture the standard error output of the process as well. This is
done by adding 2>&1
to the command line, so don't try this on
a system not supporting this redirection.
Setting $Shell::capture_stderr to -1 will send standard error to the
bit bucket (i.e., the equivalent of adding 2>/dev/null to the
command line). The same caveat regarding redirection applies.
If you set $Shell::raw to true no quoting whatsoever is done.
BUGS
Quoting should be off by default.
It isn't possible to call shell built in commands, but it can be
done by using a workaround, e.g. shell( '-c', 'set' ).
Capturing standard error does not work on some systems (e.g. VMS).
AUTHOR
Date: Thu, 22 Sep 94 16:18:16 -0700
Message-Id: <9409222318.AA17072@scalpel.netlabs.com>
To: perl5-porters@isu.edu
From: Larry Wall
Subject: a new module I just wroteHere's one that'll whack your mind a little out.
#!/usr/bin/perl
use Shell;
$foo = echo("howdy", "", "world");
print $foo;
$passwd = cat(".
Changes for OO syntax and bug fixes by Casey West .
$Shell::raw
and pod rewrite by Wolfgang Laun.
Rewritten to use closures rather than eval "string"
by Adriano Ferreira.
Search:
Labels:
Add this page
разделы
огнезащитный состав
учиться танго
билет цдкж
решетка ливнесборная
шумок дмитрий владимирович
купить угольник перех
1000 холодильник
российский флаг
три цвета: синий
индустриальный монитор
изготовление пленка
плазменный панель настенный
продать кайт
карл гиря
обогащение кислородом
люминисцентная краска
магнитно-маркерные доска
телефонный обзвон
светоотражающий краска
враждебный поглощение
трехфазный электросчетчик
выведение бородавка
варочный поверхность hansa
кс-4361
плата видеозахвата
растворитель 646
доставка кулеров
красный площадь гум
дефектоскопия сварной швов
билет большой
штанга насосный
автобетононасосы
озонатор воздуха
враждебный поглощение
кухонный техник
ром доставка
очки ночной видение
дренаж
диспетчеризация
ножной пластырь
развальцовка подогреватель
биоэпиляция
купить чейнджер
штамповка
калибровка цвет
mobil pegasus
охота легавый
доломит
вагонка половой доска
газонокосилка dolmar
кострома риелтор
спецобувь
телефонный обзвон
ubiquam
пионовая беседка
restart плита
органический растворитель
дулевский фарфор
кулер комп
три цвета: красный
цвет гармония
антиобледенительные система
профессиональный фарфор
масло облепих.концентрат
дихроичное зеркало
брусок алмазный
контейнерный автозаправка
проведение анкетирование
contiwinterviking купить
компания макса линдера
центр консультирование
колодец канализационный пластиковый
ленинградский вокзал билет
icq купить
shimadzu
куллер 478
морозильный витрина
отчетность пбоюл
разогреть вчерашний обед
подшипниковый узел
зона ограничение доступ
сервер hp
надпись кружок
огнезащитный состав
доломит
фирменный флаг
перегородка сантехкабин
sharp ar-m205
генерация кислорода
программа шифрование данный
горячий обед
компания петрокатридж
ковры резиновый
5440.11 (крышка)
asus p505
тиристорный контактор
применение доломита
слименд лифт
производственный тара
озеленение
fargo
эдас-934 аденома предст.ж-зы
экг сервис
сейфовые ячейка
ковры резиновый
ферромолибден
букмекерский контора фаворит
сейфовые ячейка
фмс
калибровка цвет
кулер винчестер
деловой разведка
французский вина
доставка канцелярия
услуга кострома
ваза 2111
вагонка половой доска
видеосъемка
блюдо фарфор
очки ночной видение
бейсболки заказ
штанга насосный
5440.11 (крышка)
бензопила dolmar
промышленый альпинизм
торговый витрина
снос любой конструкция
фасадный покрытие
лак orly
пластиковый пакет
аэрография
организовать рассылка
8800 gold edition
сборный доставка
корвет-телеком
зеркало babyliss
электрокамин dimplex model silver (sp4)
профиль salamander
сервер hp
мурано
gislaved отзыв
дмитрий шумок
автоинформатор
скраб-пилинг
доломит
мелованный бумага
растворитель
газонокосилка dolmar
детский мир wow
гелусил лак
поставщик вина
выведение бородавка
подшипниковый узел
shell