이것은 유효한 shebang입니까?

이것은 유효한 shebang입니까?

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

윗줄이 사라지면 또 무엇이 필요합니까?

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

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

답변1

"#!"이 있는 첫 번째 줄은 실행될 프로그램의 전체 경로 이름이 됩니다.

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

즉:

#!/bin/awk -f

또는

#!/bin/bash

또는

#!/usr/bin/perl

첫 번째 스크립트는 runscript 를 사용하고 awk, 두 번째 bash와 세 번째 스크립트는 perl.

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

$ chmod +x myscript.sh

답변2

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

  • \bin\awkawk의 일부 버전을 복사하거나 링크하여 현재 디렉터리에 호출되는 파일을 생성합니다. 또한 스크립트는 실행 가능해야 합니다.

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

    awk -f /path/to/script
    

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

관련 정보