在后台执行命令

taz*_*zim 1 python shell

尝试使用pythons命令模块在后台执行shell命令

>>>import commands
>>>output = commands.getstatusoutput("find / > tmp.txt &")
   sh: Syntax error: ";" unexpected
Run Code Online (Sandbox Code Playgroud)

任何人都可以解释语法有什么问题吗?那怎么办?

Tazim.

Bla*_*rad 7

根据getstatusoutput文档,commands.getstatusoutput(cmd)执行为

{ cmd  ; } 2>&1
Run Code Online (Sandbox Code Playgroud)

所以你的命令就像它一样运行

{ find / > tmp.txt & ; } 2 >& 1
Run Code Online (Sandbox Code Playgroud)

并且在这样的命令;之后无效&.

您应该使用子进程模块来模拟旧式os.spawn命令.

尝试

subprocess.Popen("find / > tmp.txt", shell=True)
Run Code Online (Sandbox Code Playgroud)