귀하의 질문에 대한 진술이 잘못되었습니다. Solaris 버전 10 까지는 레거시 True Bourne 셸을로 제공합니다 /bin/sh
. 이것은 다른 쉘에서 실패 할 수있는 이전 스크립트와의 호환성을 손상시키지 않기 위해 수행되었습니다. 이 선택은 그렇지 않으면 매우 실망 스러웠습니다.
POSIX가 호환 되지 않는 레거시 Bourne 셸이 아닌 POSIX 셸을 시작하는 명령을 지시 /bin/sh
하기 때문에 Solaris 11을 포함한 나머지 모든 Unix 및 Unix와 같은 릴리스가 아닌 대부분의 경우 POSIX 호환 셸을 제공 sh
합니다. /bin/sh
일반적으로 :
ksh88
또는 ksh93
상업적 유닉스 구현에서
- 에 수정
bash
됨 OS/X
(이전에는 있었지만 zsh
)
ash
또는 pdksh
다른 유도체에BSDs
bash
또는 dash
Gnu / Linux 배포판.
반드시 링크 일 필요는 없지만 많은 시스템에서 Gnu / Linux에서 실제 실행 파일이 될 수 있습니다.
흥미롭게도 귀하의 질문에 가장 많이 대답 된 답변에도 불구하고 배포 개발자가 레거시 Bourne 쉘과 다른 것을 설치할 수있는 기능이 부족 /bin/sh
하지는 않지만 가능한 한 POSIX 호환을 원합니다. OS와 같은 유닉스. POSIX 쉘이 기존 Bourne 쉘보다 더 많은 기능을 가지고 있다는 사실은이 표준 준수 목표의 부작용 일뿐입니다.
또한 일부 쉘은 특히 bash
호출 될 때 다르게 동작하며 sh
, 이는 쉘과 다른 방식으로 기능을 제거합니다.