我正在尝试在 bash 脚本中运行 Python 和 bash 命令。
在 bash 脚本中,我想执行一些包含在 Python 循环中的 bash 命令:
#!/bin/bash
python << END
for i in range(1000):
#execute some bash command such as echoing i
END
我怎样才能做到这一点?
Use 子流程 https://docs.python.org/3/library/subprocess.html#subprocess.call, e.g.:
import subprocess
# ...
subprocess.call(["echo", i])
还有另一个函数,例如subprocess.call
: subprocess.check_call
。它与 call 完全相同,只是如果执行的命令返回非零退出代码,它会引发异常。这在脚本和实用程序中通常是可行的行为。
subprocess.check_output
行为相同check_call
,但返回程序的标准输出。
如果不需要 shell 功能(例如变量扩展、通配符……),切勿使用 shell=True(shell=False 是默认值)。If你使用 shell=True 那么 shell 转义就是你对这些函数的工作,如果传递未经验证的用户输入,它们就是一个安全漏洞。
os.system() 也是如此——它是安全问题的常见来源。不要使用它。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)