/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 シェル) は許可しません。ここで問題の「some-function」はbashによってエクスポートされ、bashは/ bin / shを呼び出し、上記のエラーを報告するyumを呼び出します。

修正:ハイフンを含めないようにシェル関数の名前を変更します。

man bashは、bash識別子に「英数字と下線のみ」を含めることができると言います。

/bin/sh エラーがより明確です。

some-function () { :; }

sh: '一部の機能': 有効な識別子ではありません

答え2

"foo-bar"関数名を から に変更/修正"foo_bar"

これが命名規則です。強く打つ問題ありません。シェンいいえ。

「-」(ハイフン/ダッシュ/マイナス記号)を「_」(アンダースコア)に置き換えてエラーを修正しました。コードは両方で機能します。強く打つそしてシェン

関連情報