bash 함수를 상위 스크립트에 포함

bash 함수를 상위 스크립트에 포함

Bash에서 함수를 정의하고 사용할 수 있습니다.

foo() { echo $1; }
foo test

그러나 bash 스크립트에서 내 기능을 수집하려는 경우 다음 기능을 모두 사용할 수 없습니다.

배시 초기화

#!/bin/bash
foo() { echo $1; }  
export -f foo # This not helps

사용:

./init.bash && foo test # error here

스크립트의 기능을 상위 범위로 내보내는 방법이 있습니까?
작성하지 않으면 너무 전역적이 .bashrc지만 현재 bash 인스턴스에만 적용됩니다...
.bashrc

답변1

source파일을 넣을 수 있습니다 init.sh. export해당 파일에 있는 기능은 필요하지 않습니다.

$ cat init.bash 
foo() { echo $1; }

그리고 그것을 사용하십시오 :

$ . ./init.bash && foo test
test

파일을 얻으면 현재 쉘 컨텍스트의 파일에서 명령이 실행됩니다. 따라서 이러한 기능은부모.

export현재 쉘과 서브쉘에 적용 가능한 변수에 대한 속성이 설정됩니다. 상위 쉘이 아닙니다. 변수를 정의해야 합니다.현재의쉘 컨텍스트.

관련 정보