쉘 스크립트에서 "BASH-isms" 방지

쉘 스크립트에서 "BASH-isms" 방지

비슷한 도구가 있나요펄::비평가쉘 스크립트를 검사하고 버그, 이식성 문제, 대체 없는 비표준 프로그램 사용, 더 이상 사용되지 않는 프로그램 사용 등을 지적합니까?

이것이 POSIX 이외의 사용을 비활성화한다는 것을 알고 있지만 set -o posixzsh는 1부터 시작하는 쉘 배열의 색인을 생성하고 bash는 0에서 색인을 시작하며 ash는 배열을 전혀 지원하지 않는다는 것과 같이 내가 알고 싶은 것을 알려주지 않습니다.

답변1

가지다중단주의. 데비안에서는 다음과 같이 사용할 수 있습니다.패키지 유지 관리 도구.

아래 스크립트를 테스트해 보세요.스프린트그리고사치. 둘 다 POSIX가 아닌 구성을 가지고 있지만 스크립트가 두 가지 모두에서 작동한다면 아마도 대부분의 위치에서 작동할 것입니다. (일반적인 쉘 스크립트를 테스트하는 것은 극단적인 경우가 많기 때문에 어렵다는 점에 유의해야 합니다.)

스크립트를 임베디드 Linux 플랫폼으로 포팅하려는 경우 다음 명령을 사용하여 테스트하십시오.바쁜 상자. BusyBox는 임베디드 시스템의 크기에 따라 어느 정도 제한될 수 있습니다. 스크립트가 BusyBox 설치에서 사용할 수 없는 특정 기능에 의존하는 것은 일반적입니다.

비이식성은 셸에서만 발생하는 것이 아니라 외부 유틸리티에서도 발생합니다. OpenBSD와 Solaris는 유틸리티에 POSIX 기능만 제공하는 경향이 있으므로 이식성 테스트에 이상적입니다.

당신은 참조가 필요합니다POSIX 사양및 여기에 언급된 기타 리소스이 스레드(특히자동 구성 매뉴얼); 그러나 이는 단지 문서일 뿐이므로 실수로 기능을 사용한 경우에는 도움이 되지 않습니다.

관련 정보