많은 기능이 포함된 bash 스크립트가 있습니다. 이 스크립트를 bash를 사용하여 실행하고 싶습니다. 스크립트 상단에는 다음이 포함됩니다.
echo "BASH_VERSION""$BASH_VERSION"
echo "ZSH_VERSION""$ZSH_VERSION"
현재 ZSH에서 실행되는 스크립트를 볼 수 있습니다.
Bash를 사용하여 스크립트를 어떻게 실행합니까? 이미 #!/usr/bin/env bash
파일의 맨 위에 있지만 여전히 작동하지 않습니다. 나는 그것을 사용하고 있습니다 source
.
답변1
source
다음을 사용하여 스크립트를 실행하면현재의스크립트의 -line이 말하는 내용 에 관계없이 쉘 환경입니다 #!
(이 행은 단지 주석일 뿐이며 이 경우 무시됩니다). 그것이 바로 그 일입니다 source
.
명령줄에 스크립트 경로와 이름(예: )을 제공하여 스크립트를 실행하는 경우 파일이 실행 가능하다고 가정하면 스크립트 시작 부분의 -line ./myscript
에 언급된 인터프리터에 의해 실행됩니다 #!
. 파일의 함수 정의, 변수 등은 스크립트가 실행되는 동안 활성화되지만 스크립트가 종료되면 나머지 스크립트 환경과 함께 삭제됩니다.
현재 쉘 환경 내에서 액세스하려는 함수의 정의가 스크립트 파일에 포함되어 있고 zsh
파일의 함수가 쉘 호환 방식으로 작성된 경우 zsh
스크립트 파일을 확보하는 것이 적절합니다 .
함수가 bash
셸에 대해 명시적으로 작성된 경우( bash
특정 변수 등을 사용하여) 애플리케이션의 나머지 부분을 별도의 bash
스크립트로 작성하고 함수를 사용하여 해당 스크립트 내에서 파일을 가져올 수 있습니다. 또는 셸의 기능을 재정의한 다음 셸에서 재정의된 함수 정의를 가져올 수도 zsh
있습니다 zsh
.