shebang 후 서명?


26

에서 아파치 httpd 프로젝트의 "지원 / apxs.in"스크립트 로 둘러싸인 텍스트 @표시 후 제공됩니다 #!. 즉, 스크립트의 첫 줄은 다음과 같습니다.

#!@perlbin@ -w

이것은 Perl 또는 UNIX 커널입니까? 즉, path/to/script/script_name.in?를 사용하여이 스크립트를 실행할 수 있습니다 .

그렇지 않은 경우 #!?로 스크립트를 시작하는 이유는 무엇 입니까?


8
그것들은 .in파일들 (즉 템플릿들)
don_crissti

2
사이드 참고로, @파일 이름에 벌금 그래서 경우에 당신이라는 실행이 @perlbin@허용하는 -w옵션을하고, 그 파일의 내용을 해석 한 후 수있는 해당 파일을 실행 할 수 있습니다.
Bakuriu

@Bakuriu : "유효하다", 예. "벌금"? 모호한.
Monica와의 가벼움 경주 17

답변:


47

이것은 configure스크립트 에 의해 채워질 GNU Automake 템플릿의 자리 표시 자처럼 보입니다 . 따라서 이것은 Perl이나 Unix 커널이 아니라 GNU autotools입니다.

파일 make install관리자 나 패키지 관리자를 통해 시스템에 설치된 파일이 아니라 소스 배포 파일에있는 것일 수 있습니다 .

또는 perlbin제대로 정의 되지 않은 GNU autotools로 빌드가 손상되었습니다 .

파일에 .in접미사가 붙어 있으면 파일이 처리되어야 함을 확인합니다 configure.

아니요,이 파일을 그대로 실행할 수 없습니다. 플레이스 홀더는 perl실행할 때 실행 파일 의 올바른 경로로 바뀝니다 configure.


예, 질문의 링크는 소스 코드 저장소로 연결됩니다.
Monica와의 가벼움 경주

@LightnessRacesinOrbit 아시다시피, 거기에 링크가 있다는 것을 보지 못했습니다.
Kusalananda

1
나는 그런 경우라고 생각했다. 내가 편집을 제안 수정이 문제의 몇 :) 그 중이 존재 하나 그
모니카와 밝기 경주

1
Unix.SE 스타일링에 문제가있는 것 같습니다. 링크 색상은 일반 텍스트 색상과 크게 다르지 않습니다.
Barmar

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.