/bin/sh:导入“some-function”的函数定义时出错

/bin/sh:导入“some-function”的函数定义时出错

我在针对 CVE-2014-6271 安全问题更新 bash 时遇到此错误:

# 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'

答案1

[在第一条评论后编辑:@chepner - 谢谢!]

/bin/bash 允许在函数名称中使用连字符,而 /bin/sh (Bourne shell) 则不允许。在这里,有问题的“some-function”已由 bash 导出,并且 bash 调用 yum,它调用 /bin/sh 并报告上述错误。

修复:重命名 shell 函数以不包含连字符

man bash 说 bash 标识符可能包含:“仅包含字母数字字符和下划线”

/bin/sh 错误更加明确:

some-function () { :; }

sh:“某些功能”:不是有效的标识符

答案2

更改/修复函数名称从"foo-bar""foo_bar"

这是命名约定巴什没问题,因为不是。

将“-”(连字符/破折号/减号)替换为“_”(下划线),错误得到修复,并且代码适用于两者巴什

相关内容