cron 작업에서 밤마다 실행되는 bash 스크립트가 있습니다. 대소문자를 구분하지 않는 파일 일치가 필요하므로 스크립트는 다음을 호출합니다.
shopt -s nocaseglob
이것이 다른 cron 스크립트에 영향을 미치지 않는지 확인하고 싶습니다. 이 스크립트가 끝난 후에도 이 설정이 유지됩니까? 아니면 스크립트가 실행되는 동안에만 이 설정이 활성화됩니까?
감사해요!
답변1
설정 옵션은 shopt
쉘 설정입니다. 실행되는 셸 인스턴스에만 영향을 미칩니다. 셸 프로세스와 에 의해 호출되는 하위 셸 및 유사한 구문에 대해 $(…)
로컬 입니다 (…)
. 동시에 또는 나중에 실행되는 다른 쉘 스크립트에는 영향을 미치지 않으며, 심지어 이 스크립트에 의해 실행되는 명령으로 실행되는 독립 실행형 bash 스크립트에도 영향을 미치지 않습니다.
변수를 내보내지 않는 한 변수의 값과 유형에도 동일하게 적용됩니다. 함수에는 지역 변수도 있을 수 있습니다. 옵션은 함수 내에서 설정하면 함수가 반환될 때 그대로 유지되기 때문에 항상 전역 변수입니다.
환경 변수(즉, 내보낸 변수), I/O 리디렉션, 리소스 제한, umask, 현재 디렉터리 및 기타 여러 설정이 현재 셸 프로세스와 모든 하위 프로세스(즉, 이 스크립트에서 호출되는 모든 명령)에 적용됩니다. 또한 동시에 실행될 수 있는 관련 없는 프로세스로 이스케이프되지 않습니다.