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"
이것이 명명 규칙입니다.세게 때리다문제없어 왜냐하면쉿아니요.
"-"(하이픈/대시/빼기 기호)를 "_"(밑줄)로 대체하여 오류가 수정되었으며 코드는 두 가지 모두에서 작동합니다.세게 때리다그리고쉿