perlunity.de - PERL | JAVASCRIPT | PHP | MySQL | APACHE



#!/COMMUNITY

Members: 5374
davon online: 1
weitere User: 22
Click for quality!




11.02.2012 / 21:02

Community-Member werden   |   Paßwort vergessen   |   OnlineMonitor (1) Wer ist online ... OnlineMonitor starten !
     

 

Home


PERLscripts


PHPscripts


JAVAscripts


Hilfreiches


Links2www


Newscenter


Community


Interna




Community  »  Perl: Allgemeines Forum zur Themenübersicht Themensuche Themenansicht in Thread-Modus


Beitragksh-Skript aus Perl in lokalem Kontext ausführen
Seitenanfang
Hallo,

wie kann ich aus perl ein Shellskript in lokalem Kontext aufrufen. Es geht mir hauptsächlich um die Variablenübernahme.

Mit ksh geht dies ja so:

#!/bin/ksh
cmd1
cmd2
. [skript] # wird in lolkalem Kontext ausgeführt

mit perl:

#!/usr/bin/perl
...
system ("[skript]"); # läuft leider in einer Subshell und ich komme an die Umgebungsvariablen aus perl nicht ran

Datum: 24.11.2005-00:41

Beitragre: ksh-Skript aus Perl in lokalem Kontext ausführen
Seitenanfang
Hi,
was genau willst Du machen?

Greifst Du in dem Skript auf Variablen zu, die vorher gesetzt worden sein sollten?

Wie ist es, wenn Du stattdessen mit Parameterübergabe arbeitest?

Bei mir (mit Bash allerdings) geht Folgendes problemlos:


# geht
system('echo $USER');

# geht auch
$ENV{'BLA'} = 'blablabla'; #(Variable BLA setzen)
system('echo $BLA');

# geht auch (envi.sh enthlt nur ein "echo $BLA")
system('envi.sh');

# geht auch (envi.sh enthlt nur ein "echo $BLA")
system('. ./envi.sh');


Gruss,
svenXY

Datum: 24.11.2005-09:21

Beitragre: ksh-Skript aus Perl in lokalem Kontext ausführen
Seitenanfang
Aus einem Perl-Skript soll ein ksh-Skript ausgeführt werden, welches nochmal diverse ksh-Skripte aufruft. Die ksh-Skripte setzen u.a. diverse Umgebungsvariablen, die ich im weiteren Verlauf des Perl-Skriptes brauche.
Man könnte natürlich die ksh-Skripte nachprogrammieren in Perl, aber aufgrund von Änderungen und der Komplexität derselben ist dies uneffektiv.

Datum: 24.11.2005-10:19

Beitragre: ksh-Skript aus Perl in lokalem Kontext ausführen
Seitenanfang
OK, ich verstehe.
Das geht AFAIK nicht. Selbst wenn Du die Variablen exportierst, werden diese nur in neu gestarteten Prozessen verfügbar sein und das Perlskript läuft ja dann schon.

Du könntest höchstens die Variablen in eine Datei echoen und diese dann in Perl einlesen - so als (schlechten) Workaround.

Gruss,
svenXY

Datum: 24.11.2005-10:28

-






-
-