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'
답변
[@chepner의 첫 번째 댓글 이후 수정 됨-감사합니다!]
/ bin / bash는 함수 이름에 하이픈을 허용하지만 / bin / sh (Bourne shell)는 하이픈을 사용할 수 없습니다. 여기서 문제가되는 “일부 기능”은 bash에 의해 내보내졌으며, bash는 yum이라는 / bin / sh라는 위의 오류를보고했습니다.
수정 : 하이픈이 없도록 쉘 함수 이름 바꾸기
man bash는 bash 식별자가 “영숫자 및 밑줄 만”으로 구성 될 수 있다고 말합니다.
/ bin / sh 오류는 훨씬 더 명확합니다.
some-function () { :; }
sh :`some-function ‘: 유효한 식별자가 아니다
답변
변경 /에서 함수 이름을 수정 "foo-bar"
하는"foo_bar"
bash 는 괜찮은 이름 지정 규칙 이며, sh 는 그렇지 않습니다.
“-“(하이픈 / 대시 / 빼기)를 “_”(밑줄)로 바꾸면 오류가 수정되고 코드는 bash 및 sh 에서 작동합니다.