gpt4 book ai didi

python subprocess.call 参数问题

转载 作者:太空狗 更新时间:2023-10-29 12:12:32 25 4
gpt4 key购买 nike

我正在 Linux 下编写一个简单的 python 脚本,使用 subprocess 对我子网上的主机执行一批并发的单个 ping。

手动执行命令:ping -c 1 192.168.68.1

脚本::

#!/usr/bin/python
from subprocess import call

path = "ping"
flags = "-c 1 "

for i in range(1,3):
ip_addr = "192.168.68." + str(i)
args = flags + ip_addr

print "doing: {} {}".format(path, args)
call([path, args])

注释掉调用输出预期的:

doing: ping -c 1 192.168.68.1
doing: ping -c 1 192.168.68.2

使用 call(),脚本似乎调用了 ping 但参数未知。输出如下:

doing: ping -c 1 192.168.68.1
Usage: ping [-aAbBdDfhLnOqrRUvV64] [-c count] [-i interval] [-I interface]
[-m mark] [-M pmtudisc_option] [-l preload] [-p pattern] [-Q tos]
[-s packetsize] [-S sndbuf] [-t ttl] [-T timestamp_option]
[-w deadline] [-W timeout] [hop1 ...] destination
Usage: ping -6 [-aAbBdDfhLnOqrRUvV] [-c count] [-i interval] [-I interface]
[-l preload] [-m mark] [-M pmtudisc_option]
[-N nodeinfo_option] [-p pattern] [-Q tclass] [-s packetsize]
[-S sndbuf] [-t ttl] [-T timestamp_option] [-w deadline]
[-W timeout] destination
doing: ping -c 1 192.168.68.2
Usage: ping [-aAbBdDfhLnOqrRUvV64] [-c count] [-i interval] [-I interface]
[-m mark] [-M pmtudisc_option] [-l preload] [-p pattern] [-Q tos]
[-s packetsize] [-S sndbuf] [-t ttl] [-T timestamp_option]
[-w deadline] [-W timeout] [hop1 ...] destination
Usage: ping -6 [-aAbBdDfhLnOqrRUvV] [-c count] [-i interval] [-I interface]
[-l preload] [-m mark] [-M pmtudisc_option]
[-N nodeinfo_option] [-p pattern] [-Q tclass] [-s packetsize]
[-S sndbuf] [-t ttl] [-T timestamp_option] [-w deadline]
[-W timeout] destination

似乎 ping 每次迭代都被调用了两次,args 与我预期的不同。我注意到 ping 提示的 -6 参数。
我将不胜感激任何帮助,尤其是在正确使用 call() 方面。

更新:
添加了我试图模拟的 bash 脚本:

#!/bin/bash
for ip in $(seq 1 2); do
ping -c 1 192.168.68.$ip &
done

最佳答案

传递给函数 call 的参数都应该是列表中的单个元素,如下所示:

call(['ping','-c','1','192.168.68.2'])

我无法在我的环境中重现“双重打印”。

关于python subprocess.call 参数问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37370951/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com