我正在Python脚本中运行bash脚本,并且需要使用在Python脚本中bash脚本内部定义的变量。
对于某些情况,这是bash脚本:
#!/bin/bash
updates=$(/usr/lib/update-notifier/apt-check 2>&1)
all=${updates%";"*}
security=${updates#*";"}
这是我在Python脚本中的调用方式:
import subprocess
subprocess.call(["/usr/bin/checkupdates"])
我想在此SQL更新语句(它是Python脚本的一部分)中使用该bash脚本(“ all”和“ security”)中定义的变量:
cursor.execute("update dbo.updates_preprod set updates_available = ?, securityupdates_available = ? where hostname = ?",(all, security , socket.gethostname()))
cnxn.commit()
是否可以这样做?如果没有,我是否可以运行2个单独的脚本(每个脚本将回显其中一个变量)并获取每个脚本的stdout并将其定义为Python中的变量?
谢谢!
答案 0 :(得分:1)
最后,直接从Python脚本中调用该命令要容易得多。
output = subprocess.check_output("usr/lib/update-notifier/apt-check", shell=True)
all,sec = output.decode().split(';')
感谢@cdarke和@furas的建议。