如何在python中运行bash脚本并使用该脚本中定义的变量

时间:2019-04-28 01:16:17

标签: python bash variables

我正在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中的变量?

谢谢!

1 个答案:

答案 0 :(得分:1)

最后,直接从Python脚本中调用该命令要容易得多。

output = subprocess.check_output("usr/lib/update-notifier/apt-check", shell=True) all,sec = output.decode().split(';')

感谢@cdarke和@furas的建议。