#! – 일반적으로 별명이 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 실행 중입니다.