Python不正确的字符串引用

时间:2014-06-24 15:19:02

标签: python string shell quotes

您好我在python中嵌入了一个shell脚本,我想以echo args执行

args = """-ne '#!/bin/sh\n\
update_bridge_config () {\n\
    if [ $DATA_BRIDGE_IF ]; then\n\
        echo "DATA_BRIDGE_IF is $DATA_BRIDGE_IF"\n\
        sudo /usr/bin/ovs-vsctl --may-exist add-br "br-$DATA_BRIDGE_IF"\n\
    fi\n\
}\n\
ETH0_MAC_ADDR=`ip link show eth0 | awk '/ether/ {print $2}'`\n\
ETH1_MAC_ADDR=`ip link show eth1 | awk '/ether/ {print $2}'`\n\
ETH2_MAC_ADDR=`ip link show eth2 | awk '/ether/ {print $2}'`\n\ ' >> myScript.sh"""

当我打开文件时,我发现这些特定的行正在改变为

  

ETH0_MAC_ADDR ='ip link show eth0 | awk / ether / {print}'

知道遗失了什么吗?

编辑::看''取代。 '缺失 $ 2

1 个答案:

答案 0 :(得分:0)

这是单引号问题,因为您在ne """-ne '#!/bin/sh ...之后开始使用单引号。因此,您没有获得2美元并面临其他单引号异常。

使用'"'"'转义'

  

ETH0_MAC_ADDR = ip link show eth0 | awk '"'"'/ether/ {print $2}'"'"'

这应该有效。介意它 !这个问题不是pythonic而是shell