subprocess
モジュールのドキュメントによると、そのデフォルトのシェルはです/bin/sh
が、私はそのような定数をハードコーディングすることへの根深い、そしておそらく不合理な嫌悪感を持っています。
したがって、で定義されている定数を参照することをお勧めしsubprocess
ます。私はこの定数をsubprocess
直接調べる方法を見つけることができませんでした。私が管理した最高のものは
def _getshpath():
return subprocess.check_output('which sh', shell=True).strip()
また
def _getshpath():
return subprocess.check_output('echo "$0"', shell=True).strip()
...どちらも悲惨なほど壊れやすいように見えます。なぜなら、それらの有効性は、最終的に私が最初に決定しようとしている特定の値に正確に依存するからです。(つまり、この実行可能ファイルの値が「/ bin / sh」でない場合、どちらの定義も簡単に無意味になる可能性があります。)
このパスを取得するためのベストプラクティスは何ですか(「/ bin / sh」としてハードコーディングせずに)?
ありがとう!