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"
これが命名規則です。強く打つ問題ありません。シェンいいえ。
「-」(ハイフン/ダッシュ/マイナス記号)を「_」(アンダースコア)に置き換えてエラーを修正しました。コードは両方で機能します。強く打つそしてシェン