/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"

이것이 명명 규칙입니다.세게 때리다문제없어 왜냐하면아니요.

"-"(하이픈/대시/빼기 기호)를 "_"(밑줄)로 대체하여 오류가 수정되었으며 코드는 두 가지 모두에서 작동합니다.세게 때리다그리고

관련 정보