サブプロセスでの 'shell=True' の特定の使用
サブプロセス モジュールを利用する場合、'shell=True' 引数は特定の機能を果たします。目的。次のコード スニペットは両方とも同じプロセスを実行しますが、アプローチが異なります。
callProcess = subprocess.Popen(['ls', '-l'], shell=True) callProcess = subprocess.Popen(['ls', '-l']) # without shell
「shell=True」を使用する場合
「shell=」の呼び出しTrue は、コマンドがシェル インタープリタを通じて実行され、環境変数とファイル グロブの拡張が可能になることを意味します。ただし、このアプローチには潜在的なリスクが伴います:
優先アプローチ
一般に、「shell=True」の使用は避けることをお勧めします。理由は次のとおりです。
概要
シェル拡張の特別な必要がない限り、サブプロセス呼び出しには 'shell=False' を設定することをお勧めします。これにより、インタープリターに依存したり、不必要なリスクを導入したりすることなく、プロセスが直接実行されることが保証されます。
以上が「subprocess」モジュールで「shell=True」を使用する必要があるのはどのような場合ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。