답변1
filename.sh
정의를 포함하는 경우 또는 단축키를 unload_proxy
사용해야 합니다 .source ./filename.sh
. ./filename.sh
파일을 얻으면 현재 쉘 환경에서 평가되어 새로운 기능을 정의할 수 있습니다.
귀하의 예에서는 파일을 직접 실행*합니다(예:아니요출처), 사건의 순서는 다음과 같습니다.
이 설명의 목적에 따라 현재 셸의 복사본과 거의 같은 새 환경을 포함하는 새 bash 셸을 생성합니다(일부 옵션과 사물이 정의되는 방식에 따라 다름).
스크립트는 이 새로운 셸에서 실행되고 해당 환경에서 기능을 정의합니다.
스크립트가 종료되고 여기에 정의된 함수에 대한 새 셸도 종료됩니다.
제어권은 함수가 정의되지 않은 원래 셸로 반환됩니다.
로 실행하면 source ./filename.sh
새 셸이 시작되지 않으므로 2단계만 발생하고 현재 셸에서 발생합니다.
* 파일이 올바른 것으로 가정셰르본, 예를 들어#!/usr/bin/env bash