1.关于python执行shell脚本获取相应返回:
"""建议使用这个库"""
import subprocess
cmd = "ls /home"
# stdout=subprocess.PIPE 表示我标椎输出,重定向到了subprocess.PIPE的管道里,可以通过p.stdout.read()获取返回结果,shell=True表示使用的是shell,encoding="utf-8"将返回的字节数据,解码成utf-8编码格式,其实它里面有很多的参数,还可以输出重定向到文件中(当输出特别多的时候),其他参数可以根据需要查看源码
p = subprocess.Popen(cmd, shell=True, encoding="utf-8", stdout=subprocess.PIPE)
p.returncode # 可以根据这个判断是否成功,但是有时候会返回None
print("successfully" in p.stdout.read()) # 这里非常要注意的是p.stdout.read()只能读一遍,你可以理解他是一个队列,里面的东西只能那一遍
print("successfully" in p.stdout.read()) # 第二次拿去的时候这个判断是False,因为内容已经被上面拿走了