在 Netmiko 的 netmiko_send_config 函数中,config_commands 期望的是一个列表,即使你只想发送一个单独的命令,仍然需要将它放在一个列表里。这是因为 netmiko_send_config 的设计是为了处理多条命令的,因此它需要一个列表,即便这个列表只有一个元素。
举个例子:
错误用法(传递单个字符串):
python
复制代码
task.run(netmiko_send_config, config_commands=cmd)
如果 cmd 是一个字符串(例如 "interface GigabitEthernet0/0"),这会导致错误,因为 netmiko_send_config 期望的是一个列表,而不是单个字符串。
正确用法(传递单个命令作为列表):
python
复制代码
task.run(netmiko_send_config, config_commands=[cmd])
即使 cmd 是一个单独的命令字符串,把它放在 [] 中,意味着你传递的是一个包含该命令的列表,这样 netmiko_send_config 就可以正确处理它。
多个命令的情况: 如果你有多个命令,那么你可以直接传递整个命令列表,例如:
python
复制代码
cmds = ["interface GigabitEthernet0/0", "no shutdown"]
task.run(netmiko_send_config, config_commands=cmds)
总结:
[cmd] 是为了确保即使只有一个命令,也能以列表的形式传递给 netmiko_send_config,符合它对参数的要求。