Pythonで(シェルの)逆引用符で囲まれた文字列を解決するにはどうすればよいですか?
たとえば、文字列"`cat /etc/hosts | grep hostname`"
があり、そのシェルの解釈を取得したいとします。例:「0.0.0.0hostname\n」。どうやってやるの?
>>> import shlex
>>> shlex.split('cat /etc/hosts | grep hostname')
['cat', '/etc/hosts', '|', 'grep', 'hostname']
ただし、バッククォートでコマンドの出力を探している場合は、代わりにsubprocess
モジュールを使用する必要があります。
>>> import subprocess
>>> subprocess.check_output('cat /etc/hosts | grep dahn', shell=True)
'127.0.0.1\tdahnlocal.internal.int\n'
シェルに解釈させるように設定shell
したことに注意してください。True