Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 重复命令/收集结果以在另一个命令中重用_Python_Linux - Fatal编程技术网

Python 重复命令/收集结果以在另一个命令中重用

Python 重复命令/收集结果以在另一个命令中重用,python,linux,Python,Linux,我有一个python脚本,它是由另一组人创建的,它向第1层设备发送一个命令,如果连接处于活动状态或未处于活动状态,则根据连接给出反馈。但是,该脚本一次只能执行一个端口,这使得通过24/48端口需要耗费大量人力 例如: python portquery.py -status (name of device)-(port) 它给出“已连接”或“未连接”或“未找到端口”的反馈(例如,因为交换机上不存在此端口) 因此,我开始思考,如果可以在没有指定端口的情况下重复该脚本,它从端口1开始,在收到反馈“p

我有一个python脚本,它是由另一组人创建的,它向第1层设备发送一个命令,如果连接处于活动状态或未处于活动状态,则根据连接给出反馈。但是,该脚本一次只能执行一个端口,这使得通过24/48端口需要耗费大量人力

例如:

python portquery.py -status (name of device)-(port)
它给出“已连接”或“未连接”或“未找到端口”的反馈(例如,因为交换机上不存在此端口)

因此,我开始思考,如果可以在没有指定端口的情况下重复该脚本,它从端口1开始,在收到反馈“port not found”(未找到端口)时停止,并将结果保存到文件或某种形式的数组中,然后我可以使用该集在同一交换机上添加或修改具有“未连接”的vlan港口

例如:

$ python repeatquery.py (name of device)
Port 1 - Connected
Port 2 - Not Connected
etc etc
Port 49 - Port not found

老实说,我不知道如何开始,或者这将被称为什么,因为我的工作围绕着硬件方面的事情。我只是想知道去哪里找。我已经查看了重复命令和右侧的“类似问题”侧栏。我想这可能是一个有点复杂的概念,我在这里看到的是?

没有代码,很难向您准确地展示如何做到这一点。但是,代码中可能有一个执行查询的函数,以及调用该函数的位置。您可以将呼叫更改为以下内容:

for x in range(0, 47):
    do_the_function(x)
或者,您可以编写一个小的bash脚本,调用python脚本48次。 大致如下(我不确定您是否需要将端口编号从0到47或1到8):

然后使bash脚本可执行。假设您调用了脚本“checkallports.sh”:

那么你可以称之为:

> ./checkallports.sh

如果没有代码,就很难准确地向您展示如何操作。但是,代码中可能有一个执行查询的函数,以及调用该函数的位置。您可以将呼叫更改为以下内容:

for x in range(0, 47):
    do_the_function(x)
或者,您可以编写一个小的bash脚本,调用python脚本48次。 大致如下(我不确定您是否需要将端口编号从0到47或1到8):

然后使bash脚本可执行。假设您调用了脚本“checkallports.sh”:

那么你可以称之为:

> ./checkallports.sh

您看过
portquery.py
了吗?也许您可以在循环中复制它的功能-您看过
portquery.py
了吗?也许你可以复制它的功能,但在一个循环中——这是一个开始。非常感谢。我想知道它是否可以修改为包含设备名称,因为有许多设备具有不同的名称。ie:./checkallports.sh switch001是。您可以在脚本中将参数引用为$1。如果您需要更多参数,它们是$2、$3等等,这是一个开始。非常感谢。我想知道它是否可以修改为包含设备名称,因为有许多设备具有不同的名称。ie:./checkallports.sh switch001是。您可以在脚本中将参数引用为$1。如果您需要更多参数,它们是$2、$3等。