在Python中放置嵌套bash命令

2024-10-01 02:29:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我有下面的bash命令,在这个命令中我使用tcpdump,然后使用date命令保存文件。我希望将此命令直接嵌入到Python脚本中,而不必单独调用bash脚本。在

#!/bin/bash
timeout 2 tcpdump -i eth1 -s 96 -w /usr/src/pcapFiles/dump$(date +%y%m%d-%H%M%S).pcap

当我运行上述脚本时,我得到了以下类型的文件名,这正是我需要的(即日期和时间以名称呈现):

dump131104-191834.pcap

但是,在Python中复制上面的命令有困难。我已经在Python中嵌入了这个命令。我不确定如何中断date命令,以便它可以按照我需要的方式呈现文件名。下面是我的Python命令:

^{pr2}$

通过这个命令,我从tcpdump获得以下输出文件名

dump$(date +%y%m%d-%H%M%S).pcap


Tags: 文件命令src脚本bashdatebin文件名
1条回答
网友
1楼 · 发布于 2024-10-01 02:29: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获取当前日期:

^{pr2}$

相关问题 更多 >