Thread Linux commands aus Perl (15 answers)
Opened by lordy at 2013-04-23 15:16

Linuxer
 2013-04-25 11:50
#167278 #167278
User since
2006-01-27
3890 Artikel
HausmeisterIn

user image
module ist eine eigens definierte Funktion in der Shell.

Code: (dl )
1
2
3
4
module () 
{
eval `/opt/modules/3.2.6.7/bin/modulecmd bash $*`
}


Zuerst führt diese Funktion das Kommando /opt/modules/3.2.6.7/bin/modulecmd bash $* aus; $* wird dabei ersetzt durch die übergebenene Argumente.
Die Ausgabe, die davon generiert wird, wird anschließend durch das eval hergenommen und als Kommando ausgeführt.

Dabei werden diverse Umgebungsvariablen gesetzt und dann am Ende müsste dannnoch ein Kommandoaufruf stehen.


Schnellschuß:

Du könntest den Inhalt der Funktion in ein Shell-Skript packen und dieses ausführbar machen und aus dem Perl-Skript heraus aufrufen. Ich vermute, dass es um die Bash geht, daher baue ich darauf auf:

module.sh:
Code (shell): (dl )
1
2
3
#! /bin/sh

eval `/opt/modules/3.2.6.7/bin/modulecmd bash $*`



Lege diese "module.sh" im Dateisystem ab und rufe es dann aus dem Perl-Skript heraus auf:

Code (perl): (dl )
1
2
3
4
5
6
7
my @cmd = (
  '/path/to/module.sh',
  'add',
  'modulename',
);

system( @cmd ) == 0 or die "Could not execute '@cmd': $!\n";
meine Beiträge: I.d.R. alle Angaben ohne Gewähr und auf Linux abgestimmt!
Die Sprache heisst Perl, nicht PERL. - Bitte Crossposts als solche kenntlich machen!

View full thread Linux commands aus Perl