シェルコマンドを実行するにはどうすればよいですか? bash コマンドラインの通常のコマンドのように複雑になる可能性があり、実行後にそのコマンドと pwd の出力を取得できますか?
私はこのような関数を使用しました:
import subprocess as sub
def execv(command, path):
p = sub.Popen(['/bin/bash', '-c', command],
stdout=sub.PIPE, stderr=sub.STDOUT, cwd=path)
return p.stdout.read()[:-1]
そして、ユーザーがcd
コマンドを使用するかどうかを確認しますが、ユーザーが cd へのシンボリックリンクまたはその他の奇妙な方法でディレクトリを変更すると、それは機能しません。
そして、私は保持する辞書が必要です{'cwd': '<NEW PATH>', 'result': '<COMMAND OUTPUT>'}