Computer >> 컴퓨터 >  >> 프로그램 작성 >> BASH 프로그래밍

Linux Shell 스크립트에서 '#!'는 무엇입니까?

#! – 일반적으로 별명이 shebang입니다. , 샤방해시뱅파운드뱅 – 우리는 shebang을 고수할 것입니다. 이 기사의 기간 동안.

수많은 Linux 셸 스크립트의 시작 부분에서 발견되지만 실제로는 무엇입니까? 분해해 봅시다.

보통 다음과 같습니다.

#!/bin/bash

 #! 파일의 시작 부분에 나타나며 일반적으로 첫 번째 줄에 실행 파일의 경로가 옵니다(이 경우에는 bash 쉘).

댓글입니다

#,으로 시작합니다. 따라서 스크립트 자체의 일부로 실행되지 않습니다. 그러나 스크립트 작동 방식에는 영향을 미칩니다. 다음과 같은 이유로

통역사 지침을 따릅니다.

쉬뱅 인터프리터 실행 파일에 대한 경로를 제공하여 스크립트를 실행하는 데 사용할 인터프리터를 시스템에 알려줍니다.

  • 일반적으로 파일의 시작 부분, 첫 번째 줄에 위치하므로 올바른 인터프리터가 파일의 나머지 부분을 처리할 수 있습니다.
  • 지정된 경로는 절대 경로여야 합니다. 적절한 실행 파일로
  • shebang 줄에는 통역사에게 전달할 수 있는 옵션이 포함될 수 있지만 이에 대한 지원은 환경에 따라 다릅니다. 단일 옵션만 포함하는 것이 가장 안전합니다.

예시

다음은 일부 #!입니다. 예 및 의미:

배쉬

#!/bin/bash

스크립트 시작 부분에 이 줄을 배치하면 시스템에서 bash를 사용하여 실행해야 한다고 알려줍니다. 쉘 실행 가능.

zsh

#!/bin/zsh

스크립트 시작 부분에 이 줄을 배치하면 시스템에 zsh를 사용하여 실행해야 함을 알립니다. 쉘 실행 가능.

bash의 차이점에 대한 기사 읽기 및 zsh 여기!

파이썬

#!/usr/bin/env python3

Python 3을 사용하여 스크립트를 실행합니다. 여기에서 python3 경로를 지정하는 대신 실행 가능한 경우 이 줄은 현재 사용자 환경에 대해 정의된 python3 실행 파일을 찾습니다.

아무것도!

#!/bin/false

실패 상태 코드를 반환하고 스크립트를 실행하지 않습니다. 직접 실행되지 않는 스크립트에 사용됩니다.

#! 우회

#!이 있는 스크립트를 실행하는 경우 이렇게:

./myscript.sh

여기 myscript.sh 스크립트 이름 - shebang 어떤 통역사를 사용할지 결정하는 데 사용됩니다.

위의 작업은 현재 사용자에게 실행 권한이 있는 스크립트에서만 수행할 수 있습니다. 허가.

그러나 다음을 수행하는 경우:

bash myscript.sh

...쉬뱅 행이 아닙니다. 호출하는 데 사용된 명령에 bash를 지정했기 때문에 사용할 인터프리터를 결정하는 데 사용됩니다. 스크립트가 실행되고 있지 않으므로 스크립트에 대한 읽기 권한만 필요합니다. bash 실행 중입니다.