GNU/Linux >> Tutoriales Linux >  >> Linux

'Fin de archivo inesperado' y 'error al importar definición de función' error al ejecutar shellscript usando qsub

También tiene este problema en un script contenedor que usa

qsub -shell no -b yes -cwd -V somescript.bash arg1 arg2 etc

si lo usa para enviar otro script de shell bash. Produce el molesto

/bin/sh: module: line 1: syntax error: unexpected end of file
/bin/sh: error importing function definition for `BASH_FUNC_module'

(Esto es Sun Grid Engine 211.11 ejecutándose en CentOS 6.6) Resulta que las cosas se resuelven simplemente colocando lo siguiente encima del script contenedor (no del script envuelto):

unset module

Eso es todo.


En /usr/share/Modules/init/bash comentó la línea 'export -f module'.

En un shell de inicio de sesión normal, se llamará a modules.sh desde profile.d para que el comando del módulo esté disponible. En un shell sin inicio de sesión, como una secuencia de comandos appwrapper, solo obtiene primero el archivo anterior.

Generalmente, en el script de aplicaciones después de obtener el archivo anterior, nuevamente dan el comando "módulo cargar aplicaciones/proveedor/aplicación", lo que significa suministro adicional.

Referencia::- http://gridengine.org/pipermail/users/2011-November/002019.html


Por alguna razón desconocida para mí, agregar punto y coma al final de cada línea solucionó el problema.


Linux
  1. Ejecutar secuencia de comandos con ". ¿Y con “fuente”?

  2. ¿Script de shell con función y parámetro como variables?

  3. wget vs curl:Cómo descargar archivos usando wget y curl

  4. buscar y copiar archivos usando Bash

  5. FATAL:Error de módulo no encontrado usando modprobe

Colaborar en un archivo usando Linux diff y patch

Ponga en funcionamiento podman en Windows usando Linux

Cómo grabar y reproducir sesiones de terminal de Linux usando los comandos 'script' y 'scriptreplay'

Agregar columna al final del archivo CSV usando 'awk' en el script BASH

Cambios en los parámetros del módulo del kernel (usando /sys/module)

Copie y sobrescriba un archivo en el script de Shell