轉義os.system() 呼叫的字元
使用os.system() 時,請確保正確至義檔案名稱和參數關重要。這裡有一個解決這個問題的解決方案,並提供對多個作業系統和 shell 的支持,主要是 bash。
使用引號
最簡單、最安全的方法是將命令括起來以及雙引號或單引號中的參數:
os.system("my_command 'argument with spaces'")
使用shlex 或管道進行轉義
如果引號不合適,可以使用shlex 或Pipes 模組轉義字元:
範例用法
假設您要執行使用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中文網其他相關文章!