shebang #!
에서 통역사와의 사이에 공백이 허용 됩니까?
예를 들면 다음과 같습니다 #! /bin/bash
. 작동하는 것 같지만 일부는 틀렸다고 말했습니다.
답변
네, 가능합니다.
shebang에 관한 Wikipedia 기사 에는 Dennis Ritchie의 1980 년 이메일이 포함되어있다. 그는 Shebang에 대한 커널 지원 ( 인터프리터 지시문 이라고하는 더 넓은 패키지의 일부로 )을 버전 8 Unix (강조 광산)에 소개하고있다.
실행중인 파일이 매직 문자로 시작하는 경우
#!
나머지 행은 실행 된 파일의 인터프리터 이름으로 이해됩니다. […]이 훌륭한 기회를 이용하려면
#! /bin/sh
쉘 스크립트 첫 줄의 왼쪽 여백에.
공백!
은 괜찮습니다.
따라서 shebang 이후의 공간은 꽤 오랫동안 주변에 있었고 실제로 Dennis Ritchie의 예는 그것들을 사용하고 있습니다.
이 인터프리터 라인에서 초기 버전의 Unix는 16 자로 제한되었으므로 임의의 공백을 사용할 수 없습니다. 이 제한은 현대 커널에는 더 이상 적용되지 않습니다.