您好我在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
答案 0 :(得分:0)
这是单引号问题,因为您在ne """-ne '#!/bin/sh ...
之后开始使用单引号。因此,您没有获得2美元并面临其他单引号异常。
使用'"'"'
转义'
ETH0_MAC_ADDR =
ip link show eth0 | awk '"'"'/ether/ {print $2}'"'"'
这应该有效。介意它 !这个问题不是pythonic而是shell