Vous avez également ce problème dans un script wrapper qui utilise
qsub -shell no -b yes -cwd -V somescript.bash arg1 arg2 etc
si vous l'utilisez pour soumettre un autre script shell bash. Il produit l'ennuyeux
/bin/sh: module: line 1: syntax error: unexpected end of file
/bin/sh: error importing function definition for `BASH_FUNC_module'
(il s'agit de Sun Grid Engine 211.11 exécuté sur CentOS 6.6) Il s'avère que les problèmes sont résolus en plaçant simplement ce qui suit au-dessus du script wrapper (et non du script enveloppé) :
unset module
C'est tout.
Dans /usr/share/Modules/init/bash, commentez la ligne 'export -f module'.
Dans un shell de connexion normal, modules.sh sera appelé à partir de profile.d afin que la commande module soit disponible. Dans un shell sans connexion, comme un script appwrapper, il suffit de sourcer le fichier ci-dessus en premier.
Généralement, dans les scripts d'applications après le sourçage du fichier ci-dessus, ils donnent à nouveau la commande "module load apps/vendor/app", ce qui signifie un sourçage supplémentaire.
Référence ::- http://gridengine.org/pipermail/users/2011-November/002019.html
Pour une raison inconnue de moi, l'ajout de points-virgules à la fin de chaque ligne a résolu le problème.