I notice that my netmiko code can't run sh run | i host
which is a legitimate Cisco command.
When I replace sh run
with other command such as sh clo
, or show ip interface brief
, it works perfectly.
from netmiko import ConnectHandlerR1 = {'device_type': 'cisco_ios','ip': 'Router1','username': 'u','password': 'p'
}R2 = {'device_type': 'cisco_ios','ip': 'Router2','username': 'u','password': 'p'
}all_devices = [R1, R2]for device in all_devices:connect = ConnectHandler(**device)output = connect.send_command('sh run | i host')print(output)
Output
user@linux:~$ python3 script.py
^
% Invalid input detected at '^' marker.^
% Invalid input detected at '^' marker.user@linux:~$
Desired Output
hostname Router1
hostname Router2
Any idea why this code behave this way?