/ bin / sh :`some-function ‘에 대한 함수 정의 가져 오기 오류 보안 문제에 대한 bash를 업데이트 할 때이

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 는 그렇지 않습니다.

“-“(하이픈 / 대시 / 빼기)를 “_”(밑줄)로 바꾸면 오류가 수정되고 코드는 bashsh 에서 작동합니다.


답변