尝试使用pythons命令模块在后台执行shell命令
>>>import commands
>>>output = commands.getstatusoutput("find / > tmp.txt &")
sh: Syntax error: ";" unexpected
Run Code Online (Sandbox Code Playgroud)
任何人都可以解释语法有什么问题吗?那怎么办?
Tazim.
根据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)