스크립트가 bash
또는로 작성 되었는지 확인하는 방법은 무엇입니까 sh
?
Linux에서 bash 스크립트에 다음 줄이 있기 때문에 스크립트의 첫 번째 줄은 여기서 도움이 되지 않습니다.
#!bin/sh
실제로 Bourne Shell이 아닌 /bin/sh
bash(아마도 /bin/sh
해당 배포판의 링크 ) 인 배포판이 많이 있습니다 . /bin/bash
따라서 FreeBSD에서 bash로 작성된 스크립트를 실행하려고 하면 결과가 정의되지 않습니다. 왜냐하면 /bin/sh
FreeBSD에서는 bash가 아닌 Bourne Shell이기 때문입니다.
스크립트가 bash인지 sh인지 식별하는 쉬운 방법이 있습니까?
문법에 특이한 점이 있나요?
답변1
실제로 shebang 라인의 의미는 일부 배포판(예: Debian) 에서는 bash
but ./bin/sh
dash
쉘 스크립트가 bash인지 확인하는 가장 간단한 해결책은 다음을 사용하는 것입니다.checkbashism
- 바라보다man checkbashisms
더 알아보기.
checkbashisms
devscripts
다른 배포판으로 패키지해야 합니다. Debian의 경우 Fedora devscripts-minimal
(이전의 rpmdevtools
) 및 OpenSuSe 패키지 에 있습니다.rpmlint-mini