Странная ошибка bash: "ошибка импорта определения функции для "модуля BASH FUNC""

сценарий:

#!/usr/bin/env bash
echo "abc"

вывод из Bash версии 4.1.2 (1)-release:

$ ./a.bash
bash: BASH_FUNC_module(): line 0: syntax error near unexpected token `)'
bash: BASH_FUNC_module(): line 0: `BASH_FUNC_module() () {  eval `/usr/bin/modulecmd bash $*`'
bash: error importing function definition for `BASH_FUNC_module'
abc

вывод из Bash версии 3.2.25 (1)-release:

$ ./a.bash
abc

интересно, они оба работают, но я хотел бы удалить это уродливое сообщение.

Я думаю, что это связано с патчем Shellshock, но мне нужна помощь, чтобы подтвердить.

Я немного погуглил, и большинство страниц указывают на поведение Bash после исправления Shellshock, но я не знаю правильное решение.

какие решения этой проблемы?

Я работаю в "mega corp", поэтому контроль над установленными пакетами равен нулю.

5
задан kevinarpe
источник

2 ответов

единственная очевидная ошибка заключается в том, что кто-то сделал eval `/usr/bin/modulecmd bash $*`. В этом коде слишком много странных вещей ,чтобы вдаваться в подробности (does it действительно нужно eval, почему вы старые стиль backticks, почему $* вместо $@, и почему нигде нет кавычек), но похоже, что у вас может быть сильно ограниченная оболочка.

2
отвечен l0b0 2014-11-28 09:39:32
источник

У меня была такая же проблема, так как я начал использовать "модули среды". Решением (по крайней мере, для меня) было обновить bash Я использовал bash 4.1.2-15.el6 и обновлен до bash 4.1.2-29.el6 с: yum update bash Очевидно, вы не сможете убедить "mega corp" обновить, но, учитывая озабоченность вокруг shellshock, они могут вас слушать?

1
отвечен jonny 2014-12-11 14:41:08
источник

Другие вопросы bash linux shellshock