Ich kann den Befehl "Modul laden XYZ" interaktiv, aber wenn aus einem Skript ausgeführt wird, heißt es, es kann nicht finden "Modul" Befehl. Gibt es eine Möglichkeit, Module in ein Skript zu laden?Wie "Modul laden" in einer Shell oder Perl-Skript (dh nicht interaktiv)
Antwort
Versuchen
source /etc/profile
Wenn das nicht funktioniert, werden Sie wahrscheinlich ein Problem mit Aliasnamen haben. Sie benötigen möglicherweise
shopt -s expand_aliases
in Ihrem Skript.
Wenn mit Modulen Linux-Kernel-Module gemeint sind, schauen Sie in modprobe
(oder die mehr Low-Level insmod
). In der Regel ist es nicht erforderlich, Aliase (wie module
) zu verwenden, die Ihre Linux-Distribution in Ihre Shell geladen hat.
(Zum Beispiel, ich habe nicht einmal einen module
Befehl auf meiner Distro/Setup, also kann ich es nicht versuchen, zu sehen, welche Art von Modulen Sie sich beziehen.)
catamount sprach über [Environment Modules] (https://en.wikipedia.org/wiki/Environment_Modules_%28software%29) –
Ihre bash starten Skript wie folgt:
#!/bin/bash -l
Beachten Sie, dass nach diesem mit Modullast xyz geladenen Module werden nur aus dem Inneren der Skriptdatei zur Verfügung.
Danke für die schnelle Antwort, aber so etwas wie die unten funktioniert nicht: adm @ mach: ~> cat test1.sh #/bin/bash source/etc/profile shopt -s expand_aliases Modul laden MySQL #do Zeug mit mysql adm @ mach: ~> ./test1.sh ./test1.sh: Linie 6: Modul: Befehl nicht –
[email protected]:~> cat test1.sh #!/bin/bash source /etc/profile shopt -s expand_aliases module load MySQL #do stuff with mysql [email protected]:~> ./test1.sh ./test1.sh: line 6: module: command not found
–Was gefunden über Ihre erste Zeile ändern zu "/bin/bash -l "? – eduffy