Habe dieses Problem auch in einem Wrapper-Skript, das
verwendetqsub -shell no -b yes -cwd -V somescript.bash arg1 arg2 etc
wenn Sie es verwenden, um ein weiteres Bash-Shell-Skript zu senden. Es erzeugt das lästige
/bin/sh: module: line 1: syntax error: unexpected end of file
/bin/sh: error importing function definition for `BASH_FUNC_module'
(Dies ist die Sun Grid Engine 211.11, die auf CentOS 6.6 ausgeführt wird.) Es stellt sich heraus, dass die Dinge gelöst werden, indem einfach Folgendes auf das Wrapper-Skript gesetzt wird (nicht auf das umschlossene Skript):
unset module
Das ist alles.
In /usr/share/Modules/init/bash die Zeile 'export -f module' auskommentiert.
In einer normalen Login-Shell wird modules.sh von profile.d aufgerufen, sodass der Modulbefehl verfügbar ist. In einer Nicht-Login-Shell, wie einem Appwrapper-Skript, bezieht es einfach zuerst die obige Datei.
Im Allgemeinen geben sie im Anwendungsskript nach dem Sourcing der obigen Datei erneut den Befehl „module load apps/vendor/app“ ein, was zusätzliches Sourcing bedeutet.
Referenz::- http://gridengine.org/pipermail/users/2011-November/002019.html
Aus irgendeinem mir unbekannten Grund hat das Hinzufügen von Semikolons am Ende jeder Zeile das Problem behoben.