![반복하지 않고 함수 정의 및 내보내기](https://linux55.com/image/164243/%EB%B0%98%EB%B3%B5%ED%95%98%EC%A7%80%20%EC%95%8A%EA%B3%A0%20%ED%95%A8%EC%88%98%20%EC%A0%95%EC%9D%98%20%EB%B0%8F%20%EB%82%B4%EB%B3%B4%EB%82%B4%EA%B8%B0.png)
나는 이것을 할 수 있다는 것을 안다:
function foo() { echo "foo"; }; export -f foo
그런데 함수 이름을 반복하지 않고 이 작업을 수행할 수 있나요?
답변1
set -a # or: set -o allexport
# will be exported:
foo () {
echo foo
}
set +a # or: set +o allexport
# will not be exported:
bar () {
echo bar
}
allexport
셸 옵션을 설정하면 bash
옵션을 설정할 때 정의한 모든 기능이 내보내집니다. 이 옵션이 필요한 파일 부분에 대해 이 옵션을 설정한 다음 설정을 해제할 수 있습니다.
이는 정의된 변수에도 영향을 미치지만(자동으로 환경 변수로 변환됨) 함수 정의 내의 변수에는 영향을 미치지 않습니다.