首页 > 解决方案 > Python结构变量

问题描述

我正在尝试使用fabric配置脚本,并且我想在使用fabric的run()运行的bash命令中访问python变量。下面是代码

    vol_ex=e.run("sudo fdisk -l | grep Disk | awk {'print $2'} | grep -e '/dev/xv*' -e '/dev/sd*' | tr -d ':'")
    vol_ex1=vol_ex.stdout
    print("Vol_ex1=%s" % vol_ex1)
    inst=conn.describe_instances(Filters=[{"Name":"network-interface.association.public-ip", "Values":["ip"]}])
    inst_id=inst["Reservations"][0]["Instances"][0]["InstanceId"]
    print(inst_id)
    inst_az=inst["Reservations"][0]["Instances"][0]["Placement"]["AvailabilityZone"]
    disk=e.run("sudo fdisk -l | grep Disk | grep 'vol_ex1' | awk '{print $3}' | cut -d'.' -f1")

我正在尝试获取存储在“vol_ex1”中的磁盘名称,但不能用于获取变量“disk”中的大小。我们如何将 python 变量传递给这样的 bash 命令?

标签: pythonfabricpython-fabric-2

解决方案


我将命令作为字符串创建到变量中,并尝试使用 run() 运行它但不工作

    vol_ex2="sudo fdisk -l | grep Disk | grep "+vol_ex1+"| awk '{print $3}' | cut -d'.' -f1"
    vol_ex2='uptime'
    disk=e.run(vol_ex2)

我尝试打印 vol_ex2 并且似乎该命令有效但无法使用 run() 执行它。

有人可以帮忙吗?


推荐阅读