将嵌套的bash命令放入Python中

这个问题在这里已经有了答案:

  • 在Python中调用外部命令50个答案

  • $(..) ,也就是命令扩展,由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

    上一篇: Putting nested bash command in Python

    下一篇: Capturing netcat shell command output in Python