Dieses Dokument beschreibt das Cisco IOS® Shell (IOS.sh) CLI-Modul.
Cisco empfiehlt, dass Sie mit Cisco IOS Release 15.1(4)M, 15.1(2)S und späteren Versionen vertraut sind. Cisco IOS.sh muss konfiguriert und aktiviert sein, damit die Funktionen und Funktionen von Cisco IOS.sh auf Ihrem Router verwendet werden können.
Die Informationen in diesem Dokument basieren auf den folgenden Hardware- und Softwareversionen:
Die Informationen in diesem Dokument wurden von den Geräten in einer bestimmten Laborumgebung erstellt. Alle in diesem Dokument verwendeten Geräte haben mit einer leeren (Standard-)Konfiguration begonnen. Wenn Ihr Netzwerk in Betrieb ist, stellen Sie sicher, dass Sie die potenziellen Auswirkungen eines Befehls verstehen.
Cisco IOS.sh ist ein Modul, mit dem Sie Shell-Scripting in der Cisco IOS-CLI verwenden können. Dieses Modul unterstützt die Automatisierung von Routineaufgaben und vereinfacht das Gerätemanagement. Sie kann in Verbindung mit anderen Verwaltungstools wie Cisco IOS Embedded Event Manager (EEM) verwendet werden.
Um die Shell-CLI auf dem Gerät zu aktivieren, geben Sie Folgendes ein:
Switch#terminal shell
Um die Shell-CLI zu deaktivieren, geben Sie Folgendes ein:
Switch#terminal no shell
Dieses Feature unterstützt die PATH-Variable, die eine Liste von Verzeichnissen enthält, in denen die Shell nach Funktionen/Applets suchen kann. Die Shell-CLI unterstützt außerdem folgende Funktionen:
Switch#show version | grep 15.1
Cisco IOS Software, s2t54 Software (s2t54-ADVENTERPRISEK9-M),
Version 15.1(1)SY, RELEASE SOFTWARE (fc2)
Switch#show version | grep 15 > bootdisk:version.txt
Switch#dir bootdisk:
Directory of bootdisk:/
14 -rw- 280 Nov 15 2012 23:25:32 +00:00 version.txt
1024557056 bytes total (577273856 bytes free)
Switch#cat bootdisk:version.txt
Cisco IOS Software, s2t54 Software (s2t54-ADVENTERPRISEK9-M),
Version 15.1(1)SY, RELEASE SOFTWARE (fc2)
Cisco IOS.sh enthält mehrere integrierte Applets, die bei der Erstellung von Anwendungen und Filtern für Benutzerfunktionen helfen:
[[ evaluate a logical test expression
cat output data from a pipe or file to the terminal
cut edit piped output
echo echo arguments to the terminal
false return false in while or if expressions, and set the result
fetch return values from the configuration database
grep search for regular expressions in piped output or files
head print the first lines in the input
interface print interfaces that match the argument
let evaluate a numeric expression, and set the result
man print information for built-ins
more page piped output to the terminal
nl number the lines in the input
null ignore the input
printf output formatted data to the terminal
read read input into variables
set_oper set operational values
sleep pause execution of the terminal
sort sort the input
tail print the tail of the input
true return true in while or if expressions, and set the result
uname print system information
wc count lines, words, and characters
Hier sind die Befehle für die if....dann...else Operator.
Switch#x=5
Switch#if [[ $x != 5 ]];
then.else.fi>then
then.else.fi>echo false;
then.else.fi>else
else..fi>echo true;
else..fi>fi;
true
Switch#
Diese Vergleichsoperatoren werden für die Arbeit mit ganzzahligen Werten verwendet:
Operatoren | Beschreibung |
-äq | Arg1-eq Arg2. True, wenn Arg1 gleich Arg2 ist |
-n | Arg1-ne Arg2. True, wenn Arg1 nicht gleich Arg2 ist |
ln | Arg1-lt Arg2. True, wenn Arg1 kleiner als Arg2 ist |
0 | Arg1-gt Arg2. True, wenn Arg1 größer als Arg2 ist |
ge | Arg1-ge Arg2. True, wenn Arg1 größer oder gleich Arg2 ist |
-le | Arg1-le Arg2. True, wenn Arg1 kleiner oder gleich Arg2 ist |
Diese Bedingungen sind für die Arbeit mit Dateien verfügbar:
Operatoren | Beschreibung |
-a oder -e | True, wenn die Datei vorhanden ist |
-d | True, wenn eine Datei vorhanden ist, und wenn es sich um ein Verzeichnis handelt |
f | True, wenn eine Datei vorhanden ist und eine reguläre Datei ist |
r | True, wenn eine Datei vorhanden ist und lesbar ist |
E | True, wenn eine Datei vorhanden ist und eine Größe von mehr als 0 hat |
-w | True, wenn die Datei vorhanden ist und ausführbar ist |
-nicht | Testen Sie, ob file1 neuer als file2 ist. Für diesen Vergleich wird das Änderungsdatum in der Datei verwendet. |
-To | Testen Sie, ob Datei1 älter als Datei2 ist. |
Um mehrere Bedingungen in einem Vergleichsoperator zu verwenden, können Sie die folgenden logischen Operatoren verwenden:
&& Logical AND
|| Logical OR
Schleifen sind die gleichen wie in der Linux-Shell. Es stehen zwei Operatoren zur Verfügung.
Nachfolgend sind die Befehle für den for-Operator aufgeführt:
Switch#for x in 11
do..done>do
do..done>ping 192.0.2.$x
do..done>done
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.0.2.10,timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/1 ms
Switch#
Nachfolgend sind die Befehle für den while-Operator aufgeführt:
Switch#for i in 1 2 3
do..done>do
do..done>while [ $i -lt 3 ]
do..done>do
do..done>echo $i
do..done>done
do..done>i=i+1
do..done>done
Switch#
Bei Zeichenfolgenvergleichen wird das if...dann...else-Operator kann mit den folgenden Änderungen verwendet werden:
Operatoren | Beschreibung |
== | String 1 == string2, True, wenn die Zeichenfolgen gleich sind. |
!= | String1 != string2, True, wenn die Zeichenfolgen nicht gleich sind |
< | String1 < string2, True, wenn string1 lexikografisch kleiner als string2 ist |
> | String1 > string2, True, wenn string1 lexikografisch größer als string2 ist |
Switch#function add_desc() {
{..} >show running-config interface Gi$1
{..} >configuration terminal
{..} >interface Gi$1
{..} >description $2
{..} >end
{..} >show running-config interface Gi$1
{..} >}
Switch#add_desc 5/1 SHELL_TEST
Building configuration...
Current configuration : 74 bytes
!
interface GigabitEthernet5/1
ip address 192.0.2.10 255.255.255.0
end
Enter configuration commands, one per line. End with CNTL/Z.
Building configuration...
Current configuration : 98 bytes
!
interface GigabitEthernet5/1
description SHELL_TEST
ip address 192.0.2.10 255.255.255.0
end
Switch#
In diesem Abschnitt überprüfen Sie, ob Ihre Konfiguration ordnungsgemäß funktioniert.
Geben Sie den Befehl show terminal (Terminal anzeigen) ein, um die aktuelle Terminalkonfiguration anzuzeigen:
Switch#show terminal
Line 2, Location: "", Type: "XTERM-COLOR"
Length: 44 lines, Width: 155 columns
Baud rate (TX/RX) is 9600/9600
Status: PSI Enabled, Ready, Active, No Exit Banner, Ctrl-c Enabled
........
Preferred transport is lat.
Shell: enabled
Shell trace: off
Geben Sie den Befehl show shell functions (show shell-Funktionen) ein, um alle im Modul verfügbaren Funktionen anzuzeigen, einschließlich benutzerdefinierter Funktionen:
Switch#show shell functions
#User defined functions:
Function namespace: DEFAULT
function add_desc()
{
show running-config interface Gi$1
configure terminal
interface Gi$1
description $2
end
show running-config interface Gi$1
}
Für diese Konfiguration sind derzeit keine spezifischen Informationen zur Fehlerbehebung verfügbar.
Überarbeitung | Veröffentlichungsdatum | Kommentare |
---|---|---|
1.0 |
05-Jul-2013 |
Erstveröffentlichung |