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

clms
 2013-04-23 15:51
#167211 #167211
User since
2010-08-29
373 Artikel
BenutzerIn
[default_avatar]
Guest lordy
Hi

Ich hätte versucht aus Perl heraus Kommandos mittels "system" an Linux abzusetzen leider funktioniert das nicht immer so ganz. Beispielsweise ist es auf einem Server nötig ein Module zu laden. Was mittels

Code: (dl )
1
2
xyz@xyz> module add gromacs
xyz@xyz>


wunderbar funktioniert aber leider nicht von Perl aus:
Code: (dl )
system "module add gromacs";

Can't exec "module": No such file or directory at ../start_pr.pl line 18.

Was muss ich da anders machen?

Erstmal mußt Du heraus bekommen, warum das nicht funktioniert.
Tipp in Deiner normalen Shell mal
Code: (dl )
xyz@xyz> which module

Entweder ist module ein Alias, der in der von system aufgemachten Shell nicht existiert, oder der Suchpfad stimmt nicht. In diesem Fall kannst Du module unter Angabe des absoluten Pfades starten (oder den Pfad vorher erweitern).

Aber Vorsicht:
Ich weiss nicht, was Dein module genau macht. Wenn es nur Environment-Variablen setzt/verändert um andere Kommandos vorzubereiten (solche ein module Skript verwenden wir hier), muss Dir bewußt sein, dass das nur für Shell gilt, die das system-Kommando aufmacht. D.h. wenn das system beendet ist, ist auch die Shell beendet. Das nächste system-Kommando bekommt von dem vorhergehenden module dann nix mit.
Du kannst das mit system("module add gromacs; gromacs") umgehen. da werden beide Kommandos in der gleichen Shell ausgeführt.

View full thread Linux commands aus Perl