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