이것은 유효한 shebang 라인입니까?

이것은 유효한 shebang 라인입니까?

UNIX에 관해 다음과 같은 질문이 있습니다.

최고 라인이 갈 때 또 무엇이 필요합니까?

#!\bin\awk -f
  to make it run as a command?

스크립트 이름이 무엇이든 간에 스크립트를 실행하려면 chmod를 사용하여 권한을 부여받아야 한다고 생각합니다.

답변1

"#!"이 포함된 첫 번째 줄 실행될 프로그램의 전체 경로 이름입니다.

Linux의 경로 이름에는 디렉토리 사이에 슬래시가 있습니다.

즉:

#!/bin/awk -f

또는

#!/bin/bash

또는

#!/usr/bin/perl

첫 번째 스크립트는 를 사용하여 스크립트 프로그램을 실행하고 awk, 두 번째는 을 사용하고 bash, 세 번째는 를 사용하여 실행됩니다 perl.

또한 다음을 사용하여 파일을 실행 가능하게 만들어야 합니다.

$ chmod +x myscript.sh

답변2

#!\bin\awk -f유효한 shebang 라인이지만 유용한 라인은 아닙니다. 파일은 \bin\awk현재 디렉터리에서 호출되는 프로그램에 의해 해석되어야 함을 선언합니다 . 따라서 질문에 문자 그대로 답하기 위해 해당 파일을 명령으로 실행하는 두 가지 방법이 있습니다.

  • \bin\awk아마도 awk의 일부 버전을 복사하거나 링크하여 현재 디렉터리에 라는 파일을 만듭니다 . 또한 스크립트를 실행 가능하게 만들어야 합니다.

    ln -s /bin/awk '\bin\awk'
    chmod +x /path/to/script
    /path/to/script
    
  • 명시적으로 awk를 호출합니다.

    awk -f /path/to/script
    

파일 수정이 허용되는 경우 shebang 줄을 이해하기 쉽게 편집해야 합니다. 즉, 백슬래시를 슬래시로 바꾸십시오. 그리고 파일을 실행 가능하게 만듭니다(의심할 여지 없이 의도된 대답이지만 그렇게 하는 것만으로는 정답이 아닙니다).

관련 정보