Encontrei este erro ao atualizar o bash para o problema de segurança CVE-2014-6271:
# yum update bash
Running transaction (shutdown inhibited)
Updating : bash-4.2.47-4.fc20.x86_64
/bin/sh: error importing function definition for `some-function'
[editado após o primeiro comentário de: @chepner - obrigado!]
/ bin / bash permite hífens nos nomes das funções, / bin / sh (Bourne shell) não. Aqui, a "alguma função" ofensiva foi exportada pelo bash, e o bash chamado yum, que chamou / bin / sh, que relatou o erro acima.
correção: renomear funções do shell para não ter hífens
O man bash diz que os identificadores do bash podem consistir: "apenas caracteres alfanuméricos e sublinhados"
O erro / bin / sh é muito mais explícito:
some-function () { :; }
sh: `some-function ': não é um identificador válido
bash
, um hífen é permitido em um nome de função, mas não em um nome de parâmetro.Alterar / corrigir o nome da função de
"foo-bar"
para"foo_bar"
É a convenção de nomenclatura com a qual o bash está bem, onde sh não está.
Substitua o "-" (hífen / traço / menos) por "_" (sublinhado), e o erro será corrigido e o código funcionará tanto no bash como no sh
fonte