如何執行shell命令,可以像bash命令行中的普通命令那樣複雜,在執行後獲取該命令和pwd的輸出?如何執行shell命令在Python中的命令後獲取輸出和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或其他奇怪的方式來改變目錄,將無法正常工作。
,我需要如果您使用subprocess.Popen
持有{'cwd': '<NEW PATH>', 'result': '<COMMAND OUTPUT>'}
我試試吧,還有的/ proc//cwd目錄,代碼需要檢查,它可以使用'ls'或'file'(和解析結果)來做到這一點,但是當代碼執行那些命令時cwd不再可讀,因爲過程結束了。因此,您需要在執行命令後添加睡眠命令。更好的是隻是運行pwd。 –
jcubic