os.system() 호출의 이스케이프 문자
os.system()을 활용할 때 파일 이름과 인수의 적절한 이스케이프를 보장하는 것이 중요합니다. . 다음은 이 문제를 해결하고 여러 운영 체제 및 셸(주로 bash)에 대한 지원을 제공하는 솔루션입니다.
따옴표 사용
가장 간단하고 안전한 접근 방식은 명령을 묶는 것입니다. 및 큰따옴표 또는 작은따옴표 안의 인수:
os.system("my_command 'argument with spaces'")
shlex 또는 파이프를 사용하여 이스케이프
따옴표가 적합하지 않은 경우 shlex 또는 파이프 모듈을 사용할 수 있습니다. 문자를 이스케이프하려면:
사용 예
다음을 실행한다고 가정해 보겠습니다. os.system()을 사용하여 "cat input.txt | grep 'find Something' | sort >output.txt" 명령. shlex.quote()를 사용하면 코드는 다음과 같습니다.
import shlex cmd = "cat {} | grep '{}' | sort > {}".format( shlex.quote("input.txt"), shlex.quote("find something"), shlex.quote("output.txt"), ) os.system(cmd)
보안 참고 사항
os.system()은 빠르고 직접적인 실행 방법을 제공합니다. 시스템 명령을 사용하려면 잠재적인 보안 취약성을 고려하는 것이 중요합니다. os.system()을 사용하기 전에 사용자가 생성했거나 신뢰할 수 없는 입력이 제대로 검증되고 삭제되었는지 확인하세요.
위 내용은 os.system() 호출에서 문자를 안전하게 이스케이프 처리하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!