쉘 스크립트가 bash 또는 sh로 작성되었는지 확인하는 방법

쉘 스크립트가 bash 또는 sh로 작성되었는지 확인하는 방법

스크립트가 bash또는로 작성 되었는지 확인하는 방법은 무엇입니까 sh?

Linux에서 bash 스크립트에 다음 줄이 있기 때문에 스크립트의 첫 번째 줄은 여기서 도움이 되지 않습니다. #!bin/sh

실제로 Bourne Shell이 ​​아닌 /bin/shbash(아마도 /bin/sh해당 배포판의 링크 ) 인 배포판이 많이 있습니다 . /bin/bash따라서 FreeBSD에서 bash로 작성된 스크립트를 실행하려고 하면 결과가 정의되지 않습니다. 왜냐하면 /bin/shFreeBSD에서는 bash가 아닌 Bourne Shell이기 때문입니다.

스크립트가 bash인지 sh인지 식별하는 쉬운 방법이 있습니까?

문법에 특이한 점이 있나요?

답변1

실제로 shebang 라인의 의미는 일부 배포판(예: Debian) 에서는 bashbut ./bin/shdash

쉘 스크립트가 bash인지 확인하는 가장 간단한 해결책은 다음을 사용하는 것입니다.checkbashism- 바라보다man checkbashisms더 알아보기.

checkbashismsdevscripts다른 배포판으로 패키지해야 합니다. Debian의 경우 Fedora devscripts-minimal(이전의 rpmdevtools) 및 OpenSuSe 패키지 에 있습니다.rpmlint-mini

관련 정보