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
разделы
пакет гриппер
peg perego venezia
скс
скрипт рассылка объвлений
li-da
асбест
кристофер брэнд
торговый витрина
холодильник бош
внутренний перегородка
схема зал вахтангова
сборщик долг
слоеный изделие
пионовая беседка
southpark
тройник перех
фмс
решетка дренажный
аэробика мячом
электрокамин dimplex model plasma (sp9)
тонировка
болен алкоголизмом
холодильник уценка
neri karra кожгалантерея
автошкола
встраиваемый вытяжка
три цвета: красный
штамповка
снегоход буран
гипсокартон
5004.13 (крышка)
антенна бустер
рак кишка
снегоуборочный машина
северный корона
купить ниппель перех
восстановление файл
купить каболка
тиристорный контактор
поставка холодильный камера
снегоход буран
ножной пластырь
ферромолибден
ночной очки
переработка резина
время архангельск
против рак
огнестойкий краска
сканер штрихкодов
стелаж пищеблок
клеить нанесение
пвс
портативный радиостанция
корвет-телеком
грунт
конкурентный стратегия
купить стиральный
охота
силикон
квн съемка
кулер процессор
купить ломтерезку
варочный поверхность hansa
краска ржавчина
купить угольник перех
спецобувь заказ
акриловый вставка вкладыш
мва
nokia 6021 купить
shimadzu
свойство краска
снегоход буран
машина r-600
газонокосилка stiga
ленинградский вокзал билет
shell
промывка инжектор
чиллеры
сервис альфа лаваль
цвет камуфлир
белый кофе
лак orly
циклон цол
слимент лифт
лечение иглоукалыванием
выделение кислорода
мустанг лазер
лечение щитовидный железа
квн
стальной топкий spartherm
селин дион билет
клеить нанесение
консультирование организация
басейны intex
прайс эфирный антенна
эдас-134 аденома предст.ж-зы
газовый заправка
рассылка
сбор д/полоскания горло зубной боль
новосельский доломит
нужен фотограф
пазл
доставка окон
электрокардиограф
танго кэш
арочный конструкция
виные холодильник
лечение алкоголизма
1000 холодильник
вытяжка
детский гинеколог
5440.14 (крышка)
цвет гармония
степ-аэробика
бордюр обоев
купить электроэнцефалограф
морозильный витрина
перегородка сантехкабин
адресный база данный
тонирование авто
цвет камуфлир
кс-4361а
автоматический оповещение
черный кофе
бордюр
сварочный пост
lida
измерительный комплекс к2-79
доставка кулеров
кострома коммерческий
intex
доставка
циклон батарейный
вечерний платье
штамповка
измерительный комплекс к2-79
стенд
доставка ноутбук
кулер 754
конвейер
светящийся краска
купить k800i
доломит
shell