Subprocess 모듈에서 'shell=True'의 의미
subprocess 모듈은 다양한 프로세스의 실행을 용이하게 합니다. 그러나 'shell=True' 매개변수의 역할을 이해하는 것이 중요합니다.
아래 코드 조각을 고려하세요.
callProcess = subprocess.Popen(['ls', '-l'], shell=True)
callProcess = subprocess.Popen(['ls', '-l']) # without shell
두 코드 블록 모두 'ls -l' 명령을 실행합니다. , 그러나 첫 번째 코드에 'shell=True'가 있으면 상당한 영향을 미칩니다. 'shell=True'인 경우 명령은 시스템의 셸(POSIX의 경우 SHELL 환경 변수, Windows의 경우 cmd.exe로 지정)을 통해 실행됩니다. 반면, 'shell'이 없으면 프로세스가 직접 시작됩니다.
Shell 사용의 이점:
사용하지 않을 때의 이점 셸:
권장 방법:
일반적으로 다음과 같은 이유로 'shell=False'를 사용하는 것이 좋습니다.
따라서 환경 변수 확장이나 파일 glob 확장이 명시적으로 요구되지 않는 한, 보안과 효율성을 높이려면 'shell=False'를 사용하는 것이 좋습니다.
위 내용은 Python의 `subprocess` 모듈과 함께 `shell=True`를 사용해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!