'Unexpected end of file "oder" error importing function definition " - Fehler shellscript mit qsub
Habe ich Folgendes shellscript:
#!/bin/sh
cd /sw/local/bin/
export LD_LIBRARY_PATH=/sw/local/lib:/usr/local/Trolltech/Qt-4.7.2/lib:$LD_LIBRARY_PATH
./FeatureFinderRaw -in /homes/JG-C1-18.mzML -out /homes/test_remove_after_use.featureXML -threads 20
Es funktioniert, wenn ich es aus meiner eigenen Kommando-Zeile, aber wenn ich versuche zu tun:
qsub -q ningal.q -cwd -V -o /homes/queue.out -e /queue.err featureFind_C1-18_20t.sh
Bekomme ich die folgende Fehlermeldung:
/bin/sh: module: line 1: syntax error: unexpected end of file
/bin/sh: error importing function definition for `module'
./FeatureFinderRaw: error while loading shared libraries: libOpenMS.so: cannot open shared object file: No such file or directory
/bin/sh: module: line 1: syntax error: unexpected end of file
/bin/sh: error importing function definition for `module'
./FeatureFinderRaw: error while loading shared libraries: libQtWebKit.so.4: cannot open shared object file: No such file or directory
/bin/sh: module: line 1: syntax error: unexpected end of file
/bin/sh: error importing function definition for `module'
./FeatureFinderRaw: error while loading shared libraries: libQtWebKit.so.4: cannot open shared object file: No such file or directory
/bin/bash: module: line 1: syntax error: unexpected end of file
/bin/bash: error importing function definition for `module'
./FeatureFinderRaw: error while loading shared libraries: libQtWebKit.so.4: cannot open shared object file: No such file or directory
/bin/sh: module: line 1: syntax error: unexpected end of file
/bin/sh: error importing function definition for `module'
./FeatureFinderRaw: error while loading shared libraries: libQtWebKit.so.4: cannot open shared object file: No such file or directory
/bin/sh: module: line 1: syntax error: unexpected end of file
/bin/sh: error importing function definition for `module'
Ich verstehe nicht, warum bekomme ich diesen Fehler bei der Verwendung von qsub, aber nicht ausgeführt, wenn das Skript direkt auf der gleichen cluster-Maschine. Wie kann ich ein Skript ausführen, mit qsub?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Habe dieses problem auch in einem wrapper-Skript, dass verwendet
wenn Sie es verwenden, um senden ein weiteres bash-shell-Skript. Es produziert die annonying
(dies ist die Sun Grid Engine 211.11 läuft auf CentOS 6.6) Stellt sich heraus, die Dinge gelöst sind, einfach, indem ich im folgenden die oben auf dem wrapper-Skript (nicht des eingebundenen Skript):
Das ist alles.
In /usr/share/Modules/init/bash kommentiert die "export -Modul f' - Linie.
In einem normalen login-shell, modules.sh aufgerufen werden aus dem Profil.d also
der module-Befehl ist verfügbar. In einer nicht-login-shell zu, wie eine app
wrapper-Skript es nur Quelle der oben angegebenen Datei zuerst.
In der Regel in Anwendungen, die Skripts nach Beschaffung über die Datei, die Sie wieder geben Sie den Befehl "module load apps/vendor/app", das bedeutet extra-sourcing.
Referenz::- http://gridengine.org/pipermail/users/2011-November/002019.html
Aus irgendeinem Grund mir unbekannt hinzufügen Semikolons am Ende jeder Zeile das problem behoben.
Wahrscheinlichste Ursache ist, dass Sie die Datei gespeichert haben mit DOS-Zeilenenden (\r\n) anstelle von POSIX-Zeilenenden (\r), wenn das hinzufügen Semikolons einen Unterschied machen.
Fügen Sie den folgenden Befehl in ~/.bash_profile oder ~/.bashrc-Datei dann logout/login wieder.
Oder einfach führen Sie quick-Befehl: