$HOME/ulcwe/software_internal.sh
Bash를 사용하여 Ubuntu 16.04에서 호출되지 않은 함수가 포함된 파일을 만들었습니다 . rse()
파일의 소스는 ~/.bashrc
자체적으로 가져오며 rse
터미널 어디에서나 호출할 수 있으며 오류 없이 실행됩니다.
하지만 난 달리려고 해이 스크립트 파일36번째 줄에 대한 호출이 포함되어 있는데 rse
다음 오류가 발생합니다.
36행: rse: 명령을 찾을 수 없습니다.
함수를 수동으로 호출하면( rse
Bash에서 입력 및 실행) 성공하지만 Bash 스크립트에서 호출하면 실패하는 이유는 무엇입니까? 스크립트에서 어떻게 성공적으로 호출할 수 있나요?
답변1
스크립트에서 함수를 사용할 수 있는지 확인해야 합니다. 이 작업은 두 가지 방법으로 수행할 수 있습니다.
source
함수 정의가 포함된 파일, 또는export
스크립트 전에 함수를 호출합니다(export -f rse
함수가 내보내집니다).
쉘 변수와 같은 함수는 스크립트에 의해 상속된 환경의 일부가 아닙니다. 환경 변수가 되려면 쉘 변수를 내보내야 하며, bash
함수도 내보낼 수 있습니다.
내보낸 함수를 호출할 수 없습니다.어느프로세스를 진행하려면 다른 스크립트를 살펴보세요 bash
.