将嵌套的bash命令放入Python中
这个问题在这里已经有了答案:
$(..)
,也就是命令扩展,由shell执行。 由于您现在使用Python而不是shell,因此您无法免费获得该功能。
简单的解决方法是调用一个shell并为其提供命令:
tcpd = subprocess.Popen(["bash", "-c", "timeout 2 tcpdump -i eth1 -s 96 -w /usr/src/pcapFiles/dump$(date +%y%m%d-%H%M%S).pcap"], stdout=subprocess.PIPE)
output, err = tcpd.communicate()
可以说更正确的解决方法是在Python中获取当前日期:
import datetime
filename=datetime.datetime.now().strftime("/usr/src/pcapFiles/dump%y%m%d-%H%M%S.pcap")
tcpd = subprocess.Popen(["timeout", "2", "tcpdump", "-i", "eth1", "-s", "96", "-w", filename, stdout=subprocess.PIPE)
output, err = tcpd.communicate()
链接地址: http://www.djcxy.com/p/13507.html