Bei allen Linux-Distributionen ist das Shell-Skript wie ein Zauberstab, der den Prozess automatisiert, Benutzern Zeit spart und die Produktivität steigert. Dieses Tutorial zur SOLL-Skripterstellung stellt Ihnen mehr als 25 SOLL-Skripting-Beispiele vor.
Aber bevor wir zum Thema übergehen Shell-Scripting Beispiele: Lassen Sie uns Shell-Skripte und die tatsächlichen Anwendungsfälle von Shell-Skripten verstehen.
Was ist Shell-Skript?
Nun, die Schale ist eine CLI ( Befehlszeileninterpreter ), das in einem Textfenster ausgeführt wird, in dem Benutzer Shell-Befehle verwalten und ausführen können. Andererseits wird der Prozess des Schreibens einer Reihe von Befehlen, die auf einem Linux-System ausgeführt werden sollen. Eine Datei, die solche Anweisungen enthält, wird als Bash-Skript bezeichnet.
Verwendung von Shell-Skripten
Im Folgenden sind einige häufige Verwendungszwecke von Shell Script aufgeführt:
- Aufgabenautomatisierung – Es kann verwendet werden, um sich wiederholende Aufgaben wie regelmäßige Backups und Softwareinstallationsaufgaben zu automatisieren.
- Anpassung - Man kann Shell-Skripte verwenden, um seine Befehlszeilenumgebung zu entwerfen und seine Aufgabe je nach Bedarf einfach auszuführen.
- Dokumentenverwaltung - Die Shell-Skripte können auch zum Verwalten und Bearbeiten von Dateien und Verzeichnissen verwendet werden, beispielsweise zum Verschieben, Kopieren, Umbenennen oder Löschen von Dateien.
Beispiele für Shell-Skripte unter Linux
1) Was bedeutet das Shebang (#!) am Anfang eines Shell-Skripts?
Der Mist (#!) am Anfang eines Skripts gibt den Interpreter an, der zum Ausführen des Skripts verwendet werden soll. Es teilt dem System mit, welche Shell oder welcher Interpreter die Befehle des Skripts interpretieren soll.
Zum Beispiel: Angenommen, wir haben ein Skript mit dem Namen myscript.sh geschrieben in der Bash-Shell:
Reverse-String in Java

Mist
In diesem Beispiel:
- Das #!/bin/bash am Anfang des Skripts gibt an, dass das Skript mithilfe der Bash-Shell interpretiert werden soll.
- Die Echo-Befehle werden zum Drucken von Nachrichten an das Terminal verwendet.
2) Wie führt man ein Shell-Skript über die Befehlszeile aus?
Um ein Shell-Skript über die Befehlszeile auszuführen, müssen wir die folgenden Schritte ausführen:
- Stellen Sie sicher, dass die Skriptdatei über ausführbare Berechtigungen verfügt chmod-Befehl :
chmod +x myscript.sh>
- Führen Sie das Skript unter Verwendung seines Dateinamens aus:
./myscript.sh>
Hier muss ersetzt werden myscrtipt.sh mit Ihrem Skriptnamen.
3) Schreiben Sie ein Shell-Skript, das techcodeview.com auf dem Terminal ausgibt.
Erstellen Sie einen Skriptnamen „myscript.sh“ (wir verwenden „ Weil ` Editor, Sie können einen beliebigen Editor auswählen)
vim myscript.sh>
#!/bin/bash
# Dieses Skript druckt techcodeview.com auf dem Terminal
echo techcodeview.com

Namen drucken
Wir machen unser Skript mit „chmod +x“ ausführbar, führen es dann mit „./myscipt.sh“ aus und erhalten die gewünschte Ausgabe techcodeview.com.
4) Erklären Sie den Zweck des Echo-Befehls beim Shell-Scripting.
Der Echo-Befehl dient der Anzeige von Texten oder Variablen auf dem Terminal. Es wird häufig zum Drucken von Nachrichten, Variablenwerten und zum Generieren von Programmausgaben verwendet.

Echo-Befehl
In diesem Beispiel haben wir „echo“ direkt auf dem Terminal ausgeführt, da es innerhalb des Shell-Skripts genauso funktioniert.
5) Wie kann man einer Variablen in einem Shell-Skript einen Wert zuweisen?
Variablen werden Werte mit dem Zuweisungsoperator = zugewiesen.
Zum Beispiel:
#!/bin/bash
# Einer Variablen einen Wert zuweisen
Name=Jayesh
Alter=21
echo $name $age
Erläuterung:
- Der Namensvariablen wird der Wert Jayesh zugewiesen.
- Der Altersvariable wird der Wert 21 zugewiesen.
- echo wird zum Drucken verwendet und `$name` `$age` wird verwendet, um den in den Variablen gespeicherten Wert aufzurufen.

6) Schreiben Sie ein Shell-Skript, das den Namen eines Benutzers als Eingabe verwendet und ihn begrüßt.
Erstellen Sie einen Skriptnamen „example.sh“.
#!/bin/bash
# Fragen Sie den Benutzer nach seinem Namen
echo Wie heißt du?
Namen lesen
# Begrüßen Sie den Benutzer
echo Hallo, $name! Freut mich, Sie kennenzulernen.
Erläuterung:
- #!/bin/bash: Das ist die Shebang-Zeile. Es weist das System an, den Bash-Interpreter zum Ausführen des Skripts zu verwenden.
- # Fragen Sie den Benutzer nach seinem Namen: Dies ist ein Kommentar. Es bietet Kontext zum kommenden Code. Kommentare werden vom Interpreter ignoriert.
- echo Wie heißt du?: Der echo-Befehl wird verwendet, um den Text in doppelten Anführungszeichen auf dem Terminal anzuzeigen.
- Lesename: Der Lesebefehl wartet auf die Eingabe von Text durch den Benutzer und speichert ihn im Variablennamen.
- echo Hallo, $name! Freut mich, Sie kennenzulernen.: Diese Zeile verwendet den echo-Befehl, um eine Begrüßungsnachricht zu drucken, die den Wert der Namensvariablen enthält, der aus der Benutzereingabe erfasst wurde.

7) Wie fügt man einem Shell-Skript Kommentare hinzu?
Kommentare im Shell-Scripting werden verwendet, um Erklärungen oder Kontext zum Code bereitzustellen. Sie werden vom Interpreter ignoriert und sind nur für Menschen gedacht, die das Skript lesen. Mit dem #-Symbol können Sie Kommentare hinzufügen.
#!/bin/bash
# Dies ist ein Kommentar, der den Zweck des Skripts erläutert
echo gfg
8) Erstellen Sie ein Shell-Skript, das prüft, ob eine Datei im aktuellen Verzeichnis vorhanden ist.
Hier ist ein Skript, das prüft, ob eine Datei namens example.txt im aktuellen Verzeichnis vorhanden ist:
#!/bin/bash
file=example.txt
# Überprüfen Sie, ob die Datei vorhanden ist
if [ -e $file ]; Dann
echo Datei existiert: $file
anders
echo Datei nicht gefunden: $file
Sei
Erläuterung:
- #!/bin/bash: Dies ist die Shebang-Zeile, die den Interpreter (/bin/bash) angibt, der zum Ausführen des Skripts verwendet werden soll.
- file=example.txt: Diese Zeile definiert die Variablendatei und weist ihr den Wert example.txt zu. Sie können dies durch den Namen der Datei ersetzen, nach der Sie suchen möchten.
- if [ -e $file ]; then: Diese Zeile beginnt eine if-Anweisung. Die Bedingung [ -e $file ] prüft, ob die durch den Wert der Dateivariablen angegebene Datei existiert. Das Flag -e wird verwendet, um zu prüfen, ob eine Datei vorhanden ist.
- echo Datei existiert: $datei: Wenn die Bedingung wahr ist (d. h. die Datei existiert), gibt diese Zeile eine Meldung aus, die angibt, dass die Datei existiert, zusammen mit dem Namen der Datei.
- else: Wenn die Bedingung falsch ist (d. h. die Datei existiert nicht), führt das Skript den Code unter dem else-Zweig aus.
- echo Datei nicht gefunden: $datei: Diese Zeile gibt eine Fehlermeldung aus, die angibt, dass die angegebene Datei nicht gefunden wurde, zusammen mit dem Namen der Datei.
- fi: Diese Zeile markiert das Ende der if-Anweisung.

Datei wird gefunden
9) Was ist der Unterschied zwischen einfachen Anführungszeichen (‘) und doppelten Anführungszeichen () beim Shell-Scripting?
Einfache Anführungszeichen (‘) und doppelte Anführungszeichen () werden zum Einschließen von Zeichenfolgen in Shell-Skripten verwendet, haben jedoch unterschiedliche Verhaltensweisen:
- Einfache Anführungszeichen: Alles zwischen einfachen Anführungszeichen wird als Literalzeichenfolge behandelt. Variablennamen und die meisten Sonderzeichen werden nicht erweitert.
- Doppelte Anführungszeichen: Variablen und bestimmte Sonderzeichen in doppelten Anführungszeichen werden erweitert. Der Inhalt unterliegt der Variablenersetzung und der Befehlsersetzung.
#!/bin/bash
abcd=Hallo
echo ‚$abcd‘ # Ausgabe: $abcd
echo $abcd # Ausgabe: Hallo
10) Wie können Sie Befehlszeilenargumente in einem Shell-Skript verwenden?
Kommandozeilenargumente sind Werte, die einem Skript bei seiner Ausführung bereitgestellt werden. Auf sie kann innerhalb des Skripts über spezielle Variablen wie , usw. zugegriffen werden, wobei das erste Argument, das zweite Argument usw. darstellt.
Zum Beispiel: Wenn unser Skriptname in „example.sh“ steht
#!/bin/bash
echo Skriptname: Bei allen Linux-Distributionen ist das Shell-Skript wie ein Zauberstab, der den Prozess automatisiert, Benutzern Zeit spart und die Produktivität steigert. Dieses Tutorial zur SOLL-Skripterstellung stellt Ihnen mehr als 25 SOLL-Skripting-Beispiele vor.
Aber bevor wir zum Thema übergehen Shell-Scripting Beispiele: Lassen Sie uns Shell-Skripte und die tatsächlichen Anwendungsfälle von Shell-Skripten verstehen.
Was ist Shell-Skript?
Nun, die Schale ist eine CLI ( Befehlszeileninterpreter ), das in einem Textfenster ausgeführt wird, in dem Benutzer Shell-Befehle verwalten und ausführen können. Andererseits wird der Prozess des Schreibens einer Reihe von Befehlen, die auf einem Linux-System ausgeführt werden sollen. Eine Datei, die solche Anweisungen enthält, wird als Bash-Skript bezeichnet.
Verwendung von Shell-Skripten
Im Folgenden sind einige häufige Verwendungszwecke von Shell Script aufgeführt:
- Aufgabenautomatisierung – Es kann verwendet werden, um sich wiederholende Aufgaben wie regelmäßige Backups und Softwareinstallationsaufgaben zu automatisieren.
- Anpassung - Man kann Shell-Skripte verwenden, um seine Befehlszeilenumgebung zu entwerfen und seine Aufgabe je nach Bedarf einfach auszuführen.
- Dokumentenverwaltung - Die Shell-Skripte können auch zum Verwalten und Bearbeiten von Dateien und Verzeichnissen verwendet werden, beispielsweise zum Verschieben, Kopieren, Umbenennen oder Löschen von Dateien.
Beispiele für Shell-Skripte unter Linux
1) Was bedeutet das Shebang (#!) am Anfang eines Shell-Skripts?
Der Mist (#!) am Anfang eines Skripts gibt den Interpreter an, der zum Ausführen des Skripts verwendet werden soll. Es teilt dem System mit, welche Shell oder welcher Interpreter die Befehle des Skripts interpretieren soll.
Zum Beispiel: Angenommen, wir haben ein Skript mit dem Namen myscript.sh geschrieben in der Bash-Shell:

Mist
In diesem Beispiel:
- Das #!/bin/bash am Anfang des Skripts gibt an, dass das Skript mithilfe der Bash-Shell interpretiert werden soll.
- Die Echo-Befehle werden zum Drucken von Nachrichten an das Terminal verwendet.
2) Wie führt man ein Shell-Skript über die Befehlszeile aus?
Um ein Shell-Skript über die Befehlszeile auszuführen, müssen wir die folgenden Schritte ausführen:
- Stellen Sie sicher, dass die Skriptdatei über ausführbare Berechtigungen verfügt chmod-Befehl :
chmod +x myscript.sh>
- Führen Sie das Skript unter Verwendung seines Dateinamens aus:
./myscript.sh>
Hier muss ersetzt werden myscrtipt.sh mit Ihrem Skriptnamen.
3) Schreiben Sie ein Shell-Skript, das techcodeview.com auf dem Terminal ausgibt.
Erstellen Sie einen Skriptnamen „myscript.sh“ (wir verwenden „ Weil ` Editor, Sie können einen beliebigen Editor auswählen)
vim myscript.sh>
#!/bin/bash
# Dieses Skript druckt techcodeview.com auf dem Terminal
echo techcodeview.com

Namen drucken
Wir machen unser Skript mit „chmod +x“ ausführbar, führen es dann mit „./myscipt.sh“ aus und erhalten die gewünschte Ausgabe techcodeview.com.
4) Erklären Sie den Zweck des Echo-Befehls beim Shell-Scripting.
Der Echo-Befehl dient der Anzeige von Texten oder Variablen auf dem Terminal. Es wird häufig zum Drucken von Nachrichten, Variablenwerten und zum Generieren von Programmausgaben verwendet.

Echo-Befehl
In diesem Beispiel haben wir „echo“ direkt auf dem Terminal ausgeführt, da es innerhalb des Shell-Skripts genauso funktioniert.
5) Wie kann man einer Variablen in einem Shell-Skript einen Wert zuweisen?
Variablen werden Werte mit dem Zuweisungsoperator = zugewiesen.
Zum Beispiel:
#!/bin/bash
# Einer Variablen einen Wert zuweisen
Name=Jayesh
Alter=21
echo $name $age
Erläuterung:
- Der Namensvariablen wird der Wert Jayesh zugewiesen.
- Der Altersvariable wird der Wert 21 zugewiesen.
- echo wird zum Drucken verwendet und `$name` `$age` wird verwendet, um den in den Variablen gespeicherten Wert aufzurufen.

6) Schreiben Sie ein Shell-Skript, das den Namen eines Benutzers als Eingabe verwendet und ihn begrüßt.
Erstellen Sie einen Skriptnamen „example.sh“.
#!/bin/bash
# Fragen Sie den Benutzer nach seinem Namen
echo Wie heißt du?
Namen lesen
# Begrüßen Sie den Benutzer
echo Hallo, $name! Freut mich, Sie kennenzulernen.
Erläuterung:
- #!/bin/bash: Das ist die Shebang-Zeile. Es weist das System an, den Bash-Interpreter zum Ausführen des Skripts zu verwenden.
- # Fragen Sie den Benutzer nach seinem Namen: Dies ist ein Kommentar. Es bietet Kontext zum kommenden Code. Kommentare werden vom Interpreter ignoriert.
- echo Wie heißt du?: Der echo-Befehl wird verwendet, um den Text in doppelten Anführungszeichen auf dem Terminal anzuzeigen.
- Lesename: Der Lesebefehl wartet auf die Eingabe von Text durch den Benutzer und speichert ihn im Variablennamen.
- echo Hallo, $name! Freut mich, Sie kennenzulernen.: Diese Zeile verwendet den echo-Befehl, um eine Begrüßungsnachricht zu drucken, die den Wert der Namensvariablen enthält, der aus der Benutzereingabe erfasst wurde.

7) Wie fügt man einem Shell-Skript Kommentare hinzu?
Kommentare im Shell-Scripting werden verwendet, um Erklärungen oder Kontext zum Code bereitzustellen. Sie werden vom Interpreter ignoriert und sind nur für Menschen gedacht, die das Skript lesen. Mit dem #-Symbol können Sie Kommentare hinzufügen.
#!/bin/bash
# Dies ist ein Kommentar, der den Zweck des Skripts erläutert
echo gfg
8) Erstellen Sie ein Shell-Skript, das prüft, ob eine Datei im aktuellen Verzeichnis vorhanden ist.
Hier ist ein Skript, das prüft, ob eine Datei namens example.txt im aktuellen Verzeichnis vorhanden ist:
#!/bin/bash
file=example.txt
# Überprüfen Sie, ob die Datei vorhanden ist
if [ -e $file ]; Dann
echo Datei existiert: $file
anders
echo Datei nicht gefunden: $file
Sei
Erläuterung:
- #!/bin/bash: Dies ist die Shebang-Zeile, die den Interpreter (/bin/bash) angibt, der zum Ausführen des Skripts verwendet werden soll.
- file=example.txt: Diese Zeile definiert die Variablendatei und weist ihr den Wert example.txt zu. Sie können dies durch den Namen der Datei ersetzen, nach der Sie suchen möchten.
- if [ -e $file ]; then: Diese Zeile beginnt eine if-Anweisung. Die Bedingung [ -e $file ] prüft, ob die durch den Wert der Dateivariablen angegebene Datei existiert. Das Flag -e wird verwendet, um zu prüfen, ob eine Datei vorhanden ist.
- echo Datei existiert: $datei: Wenn die Bedingung wahr ist (d. h. die Datei existiert), gibt diese Zeile eine Meldung aus, die angibt, dass die Datei existiert, zusammen mit dem Namen der Datei.
- else: Wenn die Bedingung falsch ist (d. h. die Datei existiert nicht), führt das Skript den Code unter dem else-Zweig aus.
- echo Datei nicht gefunden: $datei: Diese Zeile gibt eine Fehlermeldung aus, die angibt, dass die angegebene Datei nicht gefunden wurde, zusammen mit dem Namen der Datei.
- fi: Diese Zeile markiert das Ende der if-Anweisung.

Datei wird gefunden
9) Was ist der Unterschied zwischen einfachen Anführungszeichen (‘) und doppelten Anführungszeichen () beim Shell-Scripting?
Einfache Anführungszeichen (‘) und doppelte Anführungszeichen () werden zum Einschließen von Zeichenfolgen in Shell-Skripten verwendet, haben jedoch unterschiedliche Verhaltensweisen:
- Einfache Anführungszeichen: Alles zwischen einfachen Anführungszeichen wird als Literalzeichenfolge behandelt. Variablennamen und die meisten Sonderzeichen werden nicht erweitert.
- Doppelte Anführungszeichen: Variablen und bestimmte Sonderzeichen in doppelten Anführungszeichen werden erweitert. Der Inhalt unterliegt der Variablenersetzung und der Befehlsersetzung.
#!/bin/bash
abcd=Hallo
echo ‚$abcd‘ # Ausgabe: $abcd
echo $abcd # Ausgabe: Hallo
10) Wie können Sie Befehlszeilenargumente in einem Shell-Skript verwenden?
Kommandozeilenargumente sind Werte, die einem Skript bei seiner Ausführung bereitgestellt werden. Auf sie kann innerhalb des Skripts über spezielle Variablen wie $1, $2 usw. zugegriffen werden, wobei $1 das erste Argument, $2 das zweite Argument usw. darstellt.
Zum Beispiel: Wenn unser Skriptname in „example.sh“ steht
#!/bin/bash
echo Skriptname: $0
echo Erstes Argument: $1
echo Zweites Argument: $2
Wenn wir das Skript mit „.example.sh hello_1 hello_2“ ausführen, wird Folgendes ausgegeben:

CLI-Argumente
11) Wie verwenden Sie die for-Schleife, um eine Liste von Werten zu durchlaufen?
Erstellen Sie einen Skriptnamen „example.sh“.
#!/bin/bash
Früchte = (Apfel, Banane, Kirsche, Dattel)
für Obst in ${fruits[@]}; Tun
echo Aktuelle Frucht: $fruit
Erledigt
Erläuterung:
Die Zeile „fruits=“ erstellt ein Array mit dem Namen „Früchte“ mit vier Elementen: Apfel, Banane, Kirsche und Dattel.
- für Obst in ${fruits[@]}; do: Diese Zeile startet eine for-Schleife. Hier ist, was jeder Teil bedeutet:
- für Obst: Dies deklariert eine Schleifenvariable namens Obst. In jeder Iteration der Schleife speichert Fruit den Wert des aktuellen Elements aus dem Fruit-Array.
- ${fruits[@]}: Dies ist eine Array-Erweiterung, die alle Elemente aus dem Fruit-Array übernimmt. Die ${…}-Syntax stellt sicher, dass jedes Element als separates Element behandelt wird.
- do: Dieses Schlüsselwort markiert den Anfang des Schleifenkörpers.
- echo Aktuelle Frucht: $fruit: Innerhalb der Schleife verwendet diese Zeile den Echo-Befehl, um den aktuellen Wert der Schleifenvariablen Frucht anzuzeigen. Für jede Frucht im Array wird eine Meldung wie Aktuelle Frucht: Apfel ausgegeben.
- done: Dieses Schlüsselwort markiert das Ende des Schleifenkörpers. Es teilt dem Skript mit, dass die Schleife beendet ist.

for-Schleife
12) Schreiben Sie ein Shell-Skript, das mithilfe einer Schleife die Summe der ganzen Zahlen von 1 bis N berechnet.
Erstellen Sie einen Skriptnamen „example.sh“.
#!/bin/bash
echo Geben Sie eine Zahl (N) ein:
lies N
Summe=0
for (( i=1; i<=$N; i++ )); Tun
sum=$((sum + i))
Erledigt
echo Die Summe der ganzen Zahlen von 1 bis $N ist: $sum
Erläuterung:
Das Skript fordert Sie zunächst dazu auf, mithilfe von „read“ eine Zahl (N) einzugeben. Diese Zahl bestimmt, wie oft die Schleife ausgeführt wird.
- Die Variablensumme wird auf 0 initialisiert. Diese Variable verfolgt die Summe der Ganzzahlen.
- Die for-Schleife beginnt mit for (( i=1; i<=$N; i++ )). Diese Schleifenstruktur wird verwendet, um eine Reihe von Aktionen eine bestimmte Anzahl von Malen zu wiederholen, in diesem Fall von 1 bis zum Wert N.
- Innerhalb der Schleife passieren folgende Dinge:
- i=1 setzt die Schleifenvariable i zu Beginn jeder Iteration auf 1.
- Die Schleifenbedingung i<=$N prüft, ob i immer noch kleiner oder gleich der angegebenen Zahl N ist.
- Wenn die Bedingung wahr ist, wird der Schleifenkörper ausgeführt.
- sum=$((sum + i)) berechnet den neuen Wert von sum, indem der aktuelle Wert von i dazu addiert wird. Dadurch werden die ganzen Zahlen von 1 bis zum aktuellen i-Wert addiert.
- Nach jeder Iteration erhöht i++ den Wert von i um 1.
- Die Schleife läuft weiter, bis die Bedingung i<=$N falsch wird (wenn i größer als N wird).
- Sobald die Schleife beendet ist, zeigt das Skript die Summe der ganzen Zahlen von 1 bis zur eingegebenen Zahl N an.

13) Erstellen Sie ein Skript, das nach einem bestimmten Wort in einer Datei sucht und dessen Vorkommen zählt.
Erstellen Sie einen Skriptnamen „word_count.sh“.
#!/bin/bash
echo Geben Sie das Wort ein, nach dem gesucht werden soll:
Zielwort lesen
echo Geben Sie den Dateinamen ein:
Dateinamen lesen
count=$(grep -o -w $target_word $filename | wc -l)
echo Das Wort „$target_word“ kommt $count mal in „$filename“ vor.
Erläuterung:
- echo Geben Sie das zu suchende Wort ein:: In dieser Zeile wird eine Meldung angezeigt, in der der Benutzer aufgefordert wird, ein Wort einzugeben, nach dem er in einer Datei suchen möchte.
- read target_word: Diese Zeile liest die vom Benutzer bereitgestellten Eingaben und speichert sie in einer Variablen namens target_word.
- echo Geben Sie den Dateinamen ein:: In dieser Zeile wird eine Meldung angezeigt, in der der Benutzer aufgefordert wird, den Namen der Datei einzugeben, in der er suchen möchte.
- Dateinamen lesen: Diese Zeile liest die vom Benutzer bereitgestellten Eingaben und speichert sie in einer Variablen namens Dateiname.
- count=$(grep -o -w $target_word $filename | wc -l): Diese Zeile erledigt die Hauptarbeit des Skripts. Lassen Sie es uns weiter aufschlüsseln:
- grep -o -w $target_word $filename: Dieser Teil des Befehls sucht nach Vorkommen des target_word im angegebenen Dateinamen. Die Optionen -o und -w stellen sicher, dass nur Ganzwortübereinstimmungen gezählt werden.
- |: Dies ist eine Pipe, die die Ausgabe des vorherigen Befehls übernimmt und als Eingabe an den nächsten Befehl sendet.
- wc -l: Dieser Teil des Befehls verwendet den Befehl wc, um die Anzahl der Zeilen in der Eingabe zu zählen. Die Option -l zählt gezielt die Zeilen.
- Der gesamte Befehl berechnet die Anzahl der Vorkommen des Zielworts in der Datei und weist diese Anzahl der Variablen coun zu

14) Erklären Sie die Unterschiede zwischen Standardausgabe (stdout) und Standardfehler (stderr).
Der Hauptunterschied zwischen Standardausgabe (stdout) und Standardfehler (stderr) ist wie folgt:
- Standardausgabe (stdout): Dies ist der Standardausgabestream, in den die reguläre Ausgabe eines Befehls geht. Es wird standardmäßig auf dem Terminal angezeigt. Sie können es mit> in eine Datei umleiten.
- Standardfehler (stderr): Dies ist der Ausgabestream für Fehlermeldungen und Warnungen. Es wird standardmäßig auch auf dem Terminal angezeigt. Sie können es mit 2> in eine Datei umleiten.
15) Erklären Sie das Konzept bedingter Anweisungen im Shell-Scripting.
Bedingte Anweisungen im Shell-Scripting ermöglichen es uns, Entscheidungen zu treffen und den Ablauf unseres Skripts auf der Grundlage bestimmter Bedingungen zu steuern. Sie ermöglichen unserem Skript, unterschiedliche Befehlssätze auszuführen, je nachdem, ob eine bestimmte Bedingung wahr oder falsch ist. Die primären bedingten Anweisungen beim Shell-Scripting sind die if-Anweisung, die elif-Anweisung (optional) und die else-Anweisung (optional).
Hier ist die Grundstruktur einer bedingten Anweisung im Shell-Scripting:
if [ Bedingung ]; Dann
# Befehle, die ausgeführt werden sollen, wenn die Bedingung wahr ist
elif [ another_condition ]; Dann
# Befehle, die ausgeführt werden sollen, wenn another_condition wahr ist (optional)
anders
# Befehle, die ausgeführt werden sollen, wenn keine der Bedingungen wahr ist (optional)
Sei
Erläuterung:
- [ Bedingung ] = Befehl, der die Bedingung auswertet und einen Exit-Status „wahr“ (0) oder „falsch“ (ungleich Null) zurückgibt.
- then = Es handelt sich um ein Schlüsselwort, das angibt, dass die darauf folgenden Befehle ausgeführt werden, wenn die Bedingung „true“ ergibt.
- elif = (Abkürzung für else if) Dies ist ein Abschnitt, der es uns ermöglicht, zusätzliche zu überprüfende Bedingungen anzugeben.
- else = es ist ein Abschnitt, der Befehle enthält, die ausgeführt werden, wenn keine der Bedingungen wahr ist.
- fi = Es ist ein Schlüsselwort, das das Ende des bedingten Blocks markiert.
16) Wie liest man Zeilen aus einer Datei in einem Shell-Skript?
Zu Zeilen lesen Aus einer Datei innerhalb eines Shell-Skripts können wir verschiedene Methoden verwenden, aber ein gängiger Ansatz ist die Verwendung einer While-Schleife in Kombination mit dem Lesebefehl. So können wir es machen:
#!/bin/bash
file=/home/jayeshkumar/jayesh.txt
# Überprüfen Sie, ob die Datei vorhanden ist
if [ -e $file ]; Dann
while IFS= read -r line; Tun
echo Zeile gelesen: $line
# Fügen Sie hier Ihre Verarbeitungslogik hinzu
erledigt <$file
anders
echo Datei nicht gefunden: $file
Sei
Erläuterung:
- #!/bin/bash: Dies ist die Shebang-Zeile, die den Interpreter (/bin/bash) angibt, der zum Ausführen des Skripts verwendet werden soll.
- file=/home/jayeshkumar/jayesh.txt: Diese Zeile definiert die Variablendatei und weist den vollständigen Pfad zur Datei jayesh.txt im Verzeichnis /home/jayeshkumar zu. Ändern Sie diesen Pfad so, dass er mit dem tatsächlichen Pfad der Datei übereinstimmt, die Sie lesen möchten.
- if [ -e $file ]; then: Diese Zeile beginnt eine if-Anweisung. Es prüft, ob die durch die Variable $file angegebene Datei existiert. Das Flag -e prüft, ob eine Datei vorhanden ist.
- while IFS= read -r line; do: Diese Zeile initiiert eine While-Schleife, die Zeilen aus der Datei liest.
- IFS=: Das IFS (Internal Field Separator) wird auf einen leeren Wert gesetzt, um führende und nachfolgende Leerzeichen beizubehalten.
- read -r line: Dies liest die aktuelle Zeile aus der Datei und speichert sie in der Variablen line.
- echo Zeile gelesen: $line: Diese Zeile gibt den Inhalt der Zeile aus, die aus der Datei gelesen wurde. Die Variable $line enthält den Inhalt der aktuellen Zeile.
- # Fügen Sie hier Ihre Verarbeitungslogik hinzu: Dies ist ein Platzhalterkommentar, in dem Sie Ihre eigene Logik zur Verarbeitung jeder Zeile hinzufügen können. Beispielsweise können Sie die Zeile analysieren, Informationen extrahieren oder bestimmte Aktionen basierend auf dem Inhalt ausführen.
- done <$file: Dies markiert das Ende der while-Schleife. Das < $file leitet den Inhalt der Datei um, damit er von der Schleife gelesen werden kann.
- else: Wenn die Datei nicht existiert (die Bedingung in der if-Anweisung ist falsch), führt das Skript den Code unter dem else-Zweig aus.
- echo Datei nicht gefunden: $file: Diese Zeile gibt eine Fehlermeldung aus, die angibt, dass die angegebene Datei nicht gefunden wurde.
- fi: Diese Zeile markiert das Ende der if-Anweisung.

Datei lesen
Hier haben wir „“ verwendet pwd ` Befehl, um den Pfad des aktuellen Verzeichnisses abzurufen.
17) Schreiben Sie eine Funktion in ein Shell-Skript, die die Fakultät einer bestimmten Zahl berechnet.
Hier ist das Skript, dasBerechnen Sie die Fakultäteiner gegebenen Zahl.
#!/bin/bash
# Definieren Sie eine Funktion zur Berechnung der Fakultät
berechne_faktorial() {
num=$1
Tatsache=1
for ((i=1; i<=num; i++)); Tun
fact=$((fact * i))
Erledigt
echo $fact
}
# Fordern Sie den Benutzer auf, eine Nummer einzugeben
echo Geben Sie eine Zahl ein:
lese input_num
# Rufen Sie die Funktion „calcure_factorial“ mit der Eingabenummer auf
factial_result=$(calculate_factorial $input_num)
# Zeigen Sie das faktorielle Ergebnis an
echo Factorial von $input_num ist: $factorial_result
Erläuterung:
- Das Skript beginnt mit der Shebang-Zeile #!/bin/bash, um den Interpreter anzugeben.
- berechne_faktorial() ist als Funktion definiert. Es benötigt ein Argument, num, das die Zahl ist, für die die Fakultät berechnet werden muss.
- Innerhalb der Funktion wird fact auf 1 initialisiert. Diese Variable speichert das Fakultätsergebnis.
- Die for-Schleife iteriert von 1 bis zur angegebenen Zahl (num). In jeder Iteration multipliziert es den aktuellen Wert von fact mit dem Schleifenindex i.
- Nach Abschluss der Schleife enthält die Faktenvariable die berechnete Fakultät.
- Das Skript fordert den Benutzer mit „read“ zur Eingabe einer Zahl auf.
- Die Funktion „calcure_factorial“ wird mit der vom Benutzer angegebenen Zahl aufgerufen und das Ergebnis wird in der Variablen „factorial_result“ gespeichert.
- Abschließend zeigt das Skript das berechnete Fakultätsergebnis an.

Fakultät
18) Wie gehen Sie mit Signalen wie Strg+C in einem Shell-Skript um?
In einem Shell-Skript können Sie Signale wie Strg+C (auch bekannt als SIGINT) mit dem Trap-Befehl verarbeiten. Strg+C generiert ein SIGINT-Signal, wenn der Benutzer es drückt, um das laufende Skript oder Programm zu unterbrechen. Mithilfe des Trap-Befehls können Sie Aktionen festlegen, die ausgeführt werden sollen, wenn ein bestimmtes Signal empfangen wird. So gehen Sie mit Signalen wie Strg+C in einem Shell-Skript um:
#!/bin/bash
Aufräumen() {
echo Skript unterbrochen. Bereinigung wird durchgeführt…
# Fügen Sie hier Ihre Bereinigungsaktionen hinzu
Ausgang 1
}
# Richten Sie eine Falle ein, um die Bereinigungsfunktion aufzurufen, wenn Strg+C (SIGINT) empfangen wird
Fallenbereinigung SIGINT
# Rest Ihres Skripts
echo Laufen…
Schlaf 10
echo Fertig.
Der Umgang mit Signalen ist wichtig, um Skripte robust zu machen und sicherzustellen, dass sie unerwartete Unterbrechungen ordnungsgemäß verarbeiten. Sie können die Bereinigungsfunktion an Ihre spezifischen Anforderungen anpassen, z. B. Dateien schließen, Prozesse stoppen oder Informationen protokollieren, bevor das Skript beendet wird.
Erläuterung:
- #!/bin/bash: Diese Shebang-Zeile gibt den Interpreter an, der zum Ausführen des Skripts verwendet werden soll.
- cleanup() { … }: Dies definiert eine Funktion namens cleanup. In diese Funktion können Sie alle Aktionen einschließen, die ausgeführt werden müssen, wenn das Skript unterbrochen wird, z. B. das Schließen von Dateien, das Freigeben von Ressourcen oder das Durchführen anderer Bereinigungsaufgaben.
- trap cleanup SIGINT: Der trap-Befehl wird zum Einrichten eines Signalhandlers verwendet. In diesem Fall wird angegeben, dass die Bereinigungsfunktion ausgeführt werden soll, wenn das SIGINT-Signal (Strg+C) empfangen wird.
- echo Running…, sleep 10, echo Finished.: Dies sind nur Beispielbefehle, um die Ausführung eines Skripts zu simulieren.

19) Erstellen Sie ein Skript, das nach doppelten Zeilen in einer Textdatei sucht und diese entfernt.
Hier ist unser Linux-Skript, in dem wir doppelte Zeilen aus einer Textdatei entfernen.
#!/bin/bash
input_file=input.txt
Ausgabedatei=Ausgabe.txt
$input_file | sortieren uniq> $output_file
echo Doppelte Zeilen erfolgreich entfernt.
Erläuterung:
- Das Skript beginnt mit einem Shebang (#!/bin/bash), der angibt, dass das Skript mithilfe der Bash-Shell interpretiert werden soll.
- Die Variable input_file wird auf den Namen der Eingabedatei gesetzt, die doppelte Zeilen enthält (ändern Sie diesen in Ihren tatsächlichen Namen der Eingabedatei).
- Die Variable „output_file“ wird auf den Namen der Ausgabedatei gesetzt, aus der die Duplikate entfernt werden (ändern Sie diesen in den gewünschten Namen der Ausgabedatei).
- Das Skript verwendet den Sortierbefehl, um die Zeilen in der Eingabedatei zu sortieren. Durch das Sortieren der Zeilen wird sichergestellt, dass doppelte Zeilen gruppiert werden.
- Die sortierten Zeilen werden dann durch den Befehl uniq geleitet, der aufeinanderfolgende doppelte Zeilen entfernt. Die Ausgabe dieses Prozesses wird in die Ausgabedatei umgeleitet.
- Nachdem die Duplikate entfernt wurden, gibt das Skript eine Erfolgsmeldung aus.

Entfernen doppelter Zeilen
Hier verwenden wir „ Katze ` um den Text in der Textdatei anzuzeigen.
20) Schreiben Sie ein Skript, das ein sicheres Zufallspasswort generiert.
Hier ist unser Skript zum Generieren eines sicheren Zufallspassworts.
#!/bin/bash
# Funktion zum Generieren eines zufälligen Passworts
generiere Passwort() {
tr -dc 'A-Za-z0-9!@#$%^&*()_+{}[]'
}
# Rufen Sie die Funktion auf und speichern Sie das generierte Passwort
passwort=$(generate_password)
echo Generiertes Passwort: $password
Hinweis: Der Benutzer kann die Länge seines Passworts entsprechend ändern, indem er die Zahl „12“ ersetzt.
Erläuterung:
- Das Skript beginnt mit einem Shebang (#!/bin/bash), der angibt, dass es mit der Bash-Shell interpretiert werden soll.
- Die Funktion „generate_password“ ist so definiert, dass sie ein zufälliges Passwort generiert. So funktioniert das:
- tr -dc 'A-Za-z0-9!@#$%^&*()_+{}[]'
- falten -w 12 unterteilt die gefilterten Zufallsdaten in Zeilen mit einer Breite von jeweils 12 Zeichen.
- head -n 1 wählt die erste Zeile aus und gibt uns effektiv eine zufällige Folge von Zeichen der Länge 12.
- Der Variable „password“ wird das Ergebnis des Aufrufs der Funktion „generate_password“ zugewiesen.
- Abschließend wird das generierte Passwort mittels Echo angezeigt.

21) Schreiben Sie ein Shell-Skript, das die Gesamtgröße aller Dateien in einem Verzeichnis berechnet.
Hier ist ein Shell-Skript zur Berechnung der Gesamtgröße aller Dateien in einem Verzeichnis.
#!/bin/bash
Verzeichnis=/Pfad/zu/Ihrem/Verzeichnis
total_size=$(du -csh $directory | grep total | awk ‚{print $1}‘)
echo Gesamtgröße der Dateien in $directory: $total_size
Erläuterung:
- Das Skript beginnt mit dem Befehl #!/bin/bash, der darauf hinweist, dass es mithilfe der Bash-Shell interpretiert werden soll.
- Die Verzeichnisvariable wird auf den Pfad des Verzeichnisses gesetzt, für das Sie die Gesamtdateigröße berechnen möchten. Ersetzen Sie /path/to/your/directory durch den tatsächlichen Pfad.
- Der Befehl du wird verwendet, um die Dateispeichernutzung abzuschätzen. Die verwendeten Optionen sind:
- -c: Erzeuge eine Gesamtsumme.
- -s: Zeigt nur die Gesamtgröße des angegebenen Verzeichnisses an.
- -h: Druckgrößen in einem für Menschen lesbaren Format (z. B. KB, MB, GB).
- Die Ausgabe von du wird an grep total weitergeleitet, um die Zeile herauszufiltern, die die Gesamtgröße enthält.
- awk „{print $1}“ wird verwendet, um das erste Feld (Gesamtgröße) aus der Zeile zu extrahieren.
- Die berechnete Gesamtgröße wird in der Variablen total_size gespeichert.
- Abschließend zeigt das Skript mithilfe von Echo die Gesamtgröße an.

Gesamtgröße der Dateien
Hier haben wir „“ verwendet pwd ` Befehl, um den aktuellen Verzeichnispfad anzuzeigen.
22) Erklären Sie den Unterschied zwischen if- und elif-Anweisungen beim Shell-Scripting.
| Besonderheit | `if`Staiftement | `elif`-Erklärung |
| Zweck | Erklären Sie den Unterschied zwischen if- und elif-Anweisungen beim Shell-Scripting. | Stellt alternative Bedingungen bereit, um zu überprüfen, ob die anfängliche If-Bedingung falsch ist. |
| Verwendung | Wird für den Anfangszustand verwendet. | Wird nach der anfänglichen if-Bedingung verwendet, um zusätzliche Bedingungen zu überprüfen. |
| Anzahl der Blöcke | Kann nur einen if-Block haben. | Kann mehrere elif-Blöcke haben, aber nur einen else-Block (optional). |
| Ausführung | Führt den mit der if-Anweisung verknüpften Codeblock aus, wenn die Bedingung wahr ist. Wenn die Bedingung falsch ist, wird der else-Block (falls vorhanden) ausgeführt (optional). | Überprüft jede Elif-Bedingung der Reihe nach. Wenn eine elif-Bedingung wahr ist, wird der entsprechende Codeblock ausgeführt und das Skript verlässt den gesamten bedingten Block. Wenn keine der elif-Bedingungen wahr ist, wird der else-Block (falls vorhanden) ausgeführt. |
| Verschachtelte Strukturen | Kann in anderen if-, elif- oder else-Blöcken verschachtelt werden. | Kann nicht in einem anderen elif-Block verschachtelt werden, kann aber in einem if- oder else-Block verwendet werden. |
Lassen Sie es uns anhand eines Beispiels verstehen.
#!/bin/bash
Zahl=5
if [ $number -gt 10 ]; Dann
echo $number ist größer als 10
anders
echo $number ist nicht größer als 10
Sei
Echo ——–
if [ $number -gt 10 ]; Dann
echo $number ist größer als 10
elif [ $number -eq 10 ]; Dann
echo $number ist gleich 10
anders
echo $number ist kleiner als 10
Sei
Erläuterung:
In diesem Beispiel prüft der erste if-Block, ob die Zahl größer als 10 ist. Wenn nicht, gibt er eine Meldung aus, die angibt, dass die Zahl nicht größer als 10 ist. Der zweite Block mit elif-Anweisungen prüft nacheinander mehrere Bedingungen, bis eine davon wahr ist. Da in diesem Fall der Wert von number 5 ist, lautet die Ausgabe:

if_elif Unterschied
23) Wie nutzt man eine While-Schleife, um Befehle wiederholt auszuführen?
Bei der Shell-Skripterstellung wird eine While-Schleife verwendet, um eine Reihe von Befehlen wiederholt auszuführen, solange eine bestimmte Bedingung erfüllt ist. Die Schleife führt die Befehle so lange aus, bis die Bedingung falsch wird.
Hier ist die grundlegende Syntax einer While-Schleife:
while [ Bedingung ]; Tun
# Auszuführende Befehle
Erledigt
Erläuterung:
- Die „while“-Schleife beginnt mit dem Schlüsselwort „while“, gefolgt von einer in eckigen Klammern eingeschlossenen Bedingung „[ ]“.
- Der Schleifenkörper, der die auszuführenden Befehle enthält, ist in die Schlüsselwörter „do“ und „done“ eingeschlossen.
- Die Schleife prüft zunächst die Bedingung. Wenn die Bedingung wahr ist, werden die Befehle im Schleifenkörper ausgeführt. Nachdem der Schleifenkörper ausgeführt wurde, wird die Bedingung erneut überprüft und der Vorgang wiederholt, bis die Bedingung falsch wird.
Beispiel: Wenn wir Zahlen von 1 bis 5 drucken möchten
#!/bin/bash
Zähler=1
while [ $counter -le 5 ]; Tun
Echo-Nummer: $counter
counter=$((counter + 1))
Erledigt
Erläuterung:
- Die Zählervariable wird auf 1 gesetzt.
- Die while-Schleife prüft, ob der Wert von counter kleiner oder gleich 5 ist. Solange diese Bedingung erfüllt ist, wird die Schleife weiter ausgeführt.
- Innerhalb der Schleife wird der aktuelle Wert des Zählers mithilfe von Echo ausgegeben.
- Der Zähler wird mit dem Ausdruck $((Zähler + 1)) um 1 erhöht.

while-Schleife
24) Erstellen Sie ein Shell-Skript, das alle leeren Dateien in einem Verzeichnis findet und auflistet.
Shell-Skript, mit dem Sie mithilfe der Befehle „find“ und „stat“ alle leeren Dateien in einem Verzeichnis suchen und auflisten können:
#!/bin/bash
Verzeichnis=$1″
if [ -z $directory ]; Dann
Echo-Nutzung: $0
Ausgang 1
Sei
Wenn [ ! -d $Verzeichnis ]; Dann
echo Fehler: „$directory“ ist kein gültiges Verzeichnis.
Ausgang 1
Sei
echo Leere Dateien im $directory:
finde $directory -type f -empty
Erläuterung:
- ` #!/bin/bash „: Dies wird als Shebang bezeichnet und weist das Betriebssystem an, die Bash-Shell zum Interpretieren und Ausführen des Skripts zu verwenden.
- ` Verzeichnis=$1″ `: Diese Zeile weist der Variablen ` das erste Befehlszeilenargument (bezeichnet mit $1) zu Verzeichnis `.
- ` if [ -z $directory ]; Dann `: Diese Zeile startet eine if-Anweisung, die prüft, ob das ` Verzeichnis ` Variable ist leer (-z testet auf eine leere Zeichenfolge).
- ` Echo-Nutzung: $0 `: Wenn das Verzeichnis leer ist, gibt diese Zeile eine Nutzungsmeldung aus, wobei ` 0 $ ` steht für den Namen des Skripts.
- ` Ausgang 1 `: Diese Zeile beendet das Skript mit dem Exit-Code ` 1 `, was auf einen Fehler hinweist.
- ` Sei `: Diese Zeile markiert das Ende des ` Wenn ` Aussage.
- ` Wenn [ ! -d $Verzeichnis ]; Dann `: Dies startet eine weitere if-Anweisung, um zu prüfen, ob das angegebene Verzeichnis existiert (` -D ` testet für ein Verzeichnis).
- ` echo Fehler: „$directory“ ist kein gültiges Verzeichnis. `: Wenn das angegebene Verzeichnis nicht existiert, gibt diese Zeile eine Fehlermeldung aus.
- ` Ausgang 1 `: Beendet das Skript mit dem Exit-Code ` 1 `.
- ` Sei `: Markiert das Ende des zweiten ` wenn` Stellungnahme.
- ` echo Leere Dateien im $directory: `: Wenn bisher alles gültig ist, gibt diese Zeile eine Meldung aus, die angibt, dass das Skript leere Dateien im angegebenen Verzeichnis auflistet.
- ` finde $directory -type f -empty `: Diese Zeile verwendet das ` finden ` Befehl zum Suchen nach leeren Dateien (` -leer `) vom Typ reguläre Dateien (` -Typ f `) im angegebenen Verzeichnis. Anschließend werden diese leeren Dateien aufgelistet.

Leere Dateien finden
Notiz : Wir müssen beim Ausführen des Skripts ein Verzeichnis als Argument angeben. Hier haben wir den Pfad des aktuellen Verzeichnisses home/jayeshkumar/ verwendet
25) Was ist der Zweck des Lesebefehls beim Shell-Scripting?
Mit dem Lesebefehl beim Shell-Scripting fragt das Skript Sie nach Informationen. Es ist, als würde Ihnen ein Computer eine Frage stellen und auf Ihre Antwort warten. Dies ist nützlich für Skripte, bei denen Sie etwas eingeben müssen oder wenn das Skript mit Informationen aus Dateien arbeiten muss. Der Lesebefehl hilft dem Skript, anzuhalten und auf Ihre Eingabe zu warten. Anschließend kann es diese Informationen verwenden, um weitere Aufgaben im Skript auszuführen.
Syntax des Lesebefehls:
read variable_name>
Beispiel : Wenn wir den Namen als Eingabe vom Benutzer verwenden möchten, um ihn zu drucken.
#!/bin/bash
echo Bitte geben Sie Ihren Namen ein:
Namen lesen
echo Hallo, $name!

lies nam
Zusammenfassend lässt sich sagen, dass der Lesebefehl verwendet wird, um Benutzereingaben oder Daten aus Dateien in Shell-Skripten zu erfassen, wodurch die Skripte interaktiver und vielseitiger werden.
26) Schreiben Sie ein Shell-Skript, das alle Dateinamen in einem Verzeichnis in Kleinbuchstaben umwandelt.
Hier ist ein Shell-Skript, das alle Dateinamen in einem Verzeichnis in Kleinbuchstaben umwandelt.
#!/bin/bash
Verzeichnis=$1″
if [ -z $directory ]; Dann
Echo-Nutzung: $0
Ausgang 1
Sei
Wenn [ ! -d $Verzeichnis ]; Dann
echo Fehler: „$directory“ ist kein gültiges Verzeichnis.
Ausgang 1
Sei
cd $verzeichnis || Ausgang 1
für Datei in *; Tun
if [ -f $file ]; Dann
newname=$(echo $file | tr ‚A-Z‘ ‚a-z‘)
[ $file != $newname ] && mv $file $newname
Sei
Erledigt
Erläuterung:
- #!/bin/bash : Dies ist der Knaller, der angibt, dass das Skript mithilfe der Bash-Shell interpretiert werden soll.
- Verzeichnis=$1″ : Diese Zeile weist das erste Befehlszeilenargument dem Variablenverzeichnis zu.
- if [ -z $directory ]; Dann : Diese Zeile prüft, ob die Verzeichnisvariable leer ist (kein Argument angegeben, wenn das Skript ausgeführt wird).
- Echo-Nutzung: $0 : Wenn das Verzeichnis leer ist, gibt diese Zeile eine Nutzungsmeldung mit dem Namen des Skripts ($0) aus.
- Ausgang 1 : Diese Zeile beendet das Skript mit dem Exit-Code 1, was darauf hinweist, dass ein Fehler aufgetreten ist.
- F i: Dies markiert das Ende der ersten if-Anweisung.
- Wenn [ ! -d $Verzeichnis ]; Dann : Diese Zeile prüft, ob das angegebene Verzeichnis nicht existiert (-d testet ein Verzeichnis).
- echo Fehler: „$directory“ ist kein gültiges Verzeichnis. : Wenn das angegebene Verzeichnis nicht existiert, gibt diese Zeile eine Fehlermeldung aus.
- Ausgang 1 : Beendet das Skript mit dem Exit-Code 1.
- Sei : Markiert das Ende der zweiten if-Anweisung.
- cd $verzeichnis || Ausgang 1 : Ändert das aktuelle Arbeitsverzeichnis in das angegebene Verzeichnis. Wenn der Verzeichniswechsel fehlschlägt (z. B. Verzeichnis nicht vorhanden), wird das Skript mit einem Fehlercode beendet.
- für Datei in *; Tun: ICH für Datei in *; Tun: löst eine Schleife aus, die alle Elemente im aktuellen Verzeichnis durchläuft (* entspricht allen Dateinamen).
- if [ -f $file ]; Dann : Überprüft, ob das aktuelle Schleifeniterationselement eine reguläre Datei ist (-f testet auf eine reguläre Datei).
- newname=$(echo $file | tr ‚A-Z‘ ‚a-z‘) : Wandelt den aktuellen Dateinamen ($file) mit dem Befehl tr in Kleinbuchstaben um und speichert das Ergebnis in der Variablen newname.
- [ $file != $newname ] && mv $file $newname : Vergleicht den ursprünglichen Dateinamen mit dem neuen Dateinamen in Kleinbuchstaben. Wenn sie unterschiedlich sind, wird die Datei mit dem Befehl mv umbenannt.
- Sei : Markiert das Ende der inneren if-Anweisung.
- Erledigt : Markiert das Ende der Schleife.

Notiz : Wir müssen beim Ausführen des Skripts ein Verzeichnis als Argument angeben. Hier haben wir den Pfad des aktuellen Verzeichnisses home/jayeshkumar/test verwendet
27) Wie können Sie arithmetische Operationen innerhalb eines Shell-Skripts verwenden?
Arithmetische Operationen können innerhalb eines Shell-Skripts mithilfe verschiedener integrierter Methoden ausgeführt werden. Die Shell bietet Mechanismen für einfache arithmetische Berechnungen mithilfe der arithmetischen Erweiterung wie:
- Arithmetische Erweiterung ($((…)))
- Verwenden des expr-Befehls
- Verwenden des let-Befehls
Hier ist unser Shell-Skript, das alle drei Methoden für arithmetische Operationen erklärt.
#!/bin/bash
num1=10
num2=5
#Arithmetische Erweiterung ($((…)))
Ergebnis=$((num1 + num2))
echo Summe: $result
#Verwenden des expr-Befehls
sum=$(expr $num1 + $num2)
echo Summe: $sum
#Verwenden des let-Befehls
sei sum = num1 + num2
echo Summe: $sum
Erläuterung:
- `#!/bin/bash` : Dies ist der Knaller, der angibt, dass das Skript mithilfe der Bash-Shell interpretiert werden soll.
- `num1=10` und ` num2=5` : Diese Zeilen weisen den Variablen ` die Werte 10 und 5 zu num1 ` und ` num2 ` bzw.
- `#Arithmetische Erweiterung ($((…)))` : Dies ist ein Kommentar, der den Anfang des Abschnitts angibt, der die arithmetische Erweiterung demonstriert.
- `result=$((num1 + num2))` : Diese Zeile verwendet eine arithmetische Erweiterung, um die Summe von ` zu berechnen num1 ` und ` num2 ` und speichert das Ergebnis im ` Ergebnis ` variabel.
- „echo Summe: $result“. : Diese Zeile gibt die berechnete Summe unter Verwendung des im ` gespeicherten Werts aus Ergebnis ` variabel.
- `#Verwenden des expr-Befehls` : Dies ist ein Kommentar, der den Anfang des Abschnitts angibt, der die Verwendung des „`“ demonstriert Ausdruck ` Befehl für arithmetische Operationen.
- `sum=$(expr $num1 + $num2)` : Diese Zeile verwendet das ` Ausdruck ` Befehl zur Berechnung der Summe von ` num1 ` und ` num2 ` und speichert das Ergebnis im ` Summe ` variabel. Beachten Sie, dass das ` Ausdruck Der Befehl ` erfordert Leerzeichen um die Operatoren.
- „Echo-Summe: $sum“. : Diese Zeile gibt die berechnete Summe unter Verwendung des im ` gespeicherten Werts aus Summe ` variabel.
- `#Verwenden des let-Befehls` : Dies ist ein Kommentar, der den Anfang des Abschnitts angibt, der die Verwendung des „`“ demonstriert lassen ` Befehl für arithmetische Operationen.
- `Lass Summe = num1 + num2″` : Diese Zeile verwendet das ` lassen ` Befehl zur Berechnung der Summe von ` num1 ` und ` num2 ` und weist das Ergebnis dem ` zu Summe ` variabel. Das ` lassen Für den Befehl ` sind keine Leerzeichen um die Operatoren erforderlich.
- „Echo-Summe: $sum“. : Diese Zeile gibt die berechnete Summe unter Verwendung des im ` gespeicherten Werts aus Summe ` variabel.

Arithmetik
28) Erstellen Sie ein Skript, das prüft, ob ein Netzwerkhost erreichbar ist.
Hier ist ein einfaches Shell-Skript, das mithilfe des Ping-Befehls prüft, ob ein Netzwerkhost erreichbar ist:
#!/bin/bash
host=$1″
if [ -z $host ]; Dann
Echo-Nutzung: $0
Ausgang 1
Sei
ping -c 4 $host
wenn [ $? -eq 0 ]; Dann
echo $host ist erreichbar.
anders
echo $host ist nicht erreichbar.
Sei
Erläuterung:
- Es nimmt einen Hostnamen oder eine IP-Adresse als Argument und prüft, ob das Argument angegeben wird.
- Wenn kein Argument angegeben wird, wird eine Nutzungsmeldung angezeigt und der Vorgang beendet.
- Es verwendet den Ping-Befehl mit der Option -c 4, um vier ICMP-Echo-Anfragen an den angegebenen Host zu senden.
- Nachdem der Ping-Befehl ausgeführt wurde, prüft er den Exit-Status ($?). Wenn der Exit-Status 0 ist, bedeutet dies, dass der Host erreichbar ist und das Skript eine Erfolgsmeldung ausgibt. Andernfalls wird eine Fehlermeldung ausgegeben.

Notiz : Wir müssen beim Ausführen des Skripts einen Hostnamen als Argument angeben. Hier haben wir google.com verwendet
29) Schreiben Sie ein Shell-Skript, um das größte Element in einem Array zu finden:
Hier ist ein Shell-Skript, um das größte Element in einem Array zu finden.
#!/bin/bash
# Deklarieren Sie ein Array
array=(3 56 24 89 67)
# Initialisieren Sie eine Variable, um den Maximalwert zu speichern, beginnend mit dem ersten Element
max=${array[0]}
# Durch das Array iterieren
für num in ${array[@]}; Tun
# Vergleichen Sie jedes Element mit dem aktuellen Maximum
if ((num> max)); Dann
max=$num
Sei
Erledigt
# Drucken Sie den Maximalwert aus
echo Das maximale Element im Array ist: $max
Erläuterung:
- ` #!/bin/bash `: Die Shebang-Zeile gibt an, dass das Skript mit der Bash-Shell interpretiert werden soll.
- ` array=(3 56 24 89 67) `: Das Array wird deklariert und mit Werten initialisiert.
- ` max=${array[0]} `: `max` wird mit dem ersten Element des Arrays initialisiert.
- ` für num in ${array[@]}; Tun „: Eine „for“-Schleife wird verwendet, um die Elemente des Arrays zu durchlaufen.
- ` if ((num> max)); Dann „: Eine „if“-Anweisung prüft, ob das aktuelle Element „num“ größer als das aktuelle Maximum „max“ ist.
- ` max=$num`: If`num ` ist größer als `max`, `max` wird mit dem Wert von num aktualisiert.
- ` Erledigt `: Die `for`-Schleife ist geschlossen.
- ` echo Das maximale Element im Array ist: $max `: Abschließend gibt das Skript den im Array gefundenen Maximalwert aus.

größte Zahl
30) Schreiben Sie ein Skript, um die Summe der Elemente in einem Array zu berechnen.
#!/bin/bash
# Deklarieren Sie ein Array
array=(1 65 22 19 94)
# Initialisieren Sie eine Variable, um die Summe zu speichern
Summe=0
# Durchlaufen Sie das Array und fügen Sie jedes Element zur Summe hinzu
für num in ${array[@]}; Tun
am=$((am + am))
Erledigt
# Drucken Sie die Summe aus
echo Die Summe der Elemente im Array ist: $sum
Erläuterung:
` #!/bin/bash `: Die Shebang-Zeile gibt an, dass das Skript mit der Bash-Shell interpretiert werden soll.
` array=(1 65 22 19 94) `: Das Array wird deklariert und mit Werten initialisiert.
` Summe=0 `:` Summe ` wird auf Null initialisiert, um die Summe der Elemente zu speichern.
` für num in ${array[@]}; Tun `: A` für Die Schleife wird verwendet, um die Elemente des Arrays zu durchlaufen.
` am=$((am + am)) `: Innerhalb der Schleife jedes Element ` Auf eins ` wird dem ` hinzugefügt Summe ` variabel.
` Erledigt `: Das ` für ` Schleife ist geschlossen.
„echo Die Summe der Elemente im Array ist: $sum“: Schließlich gibt das Skript die Summe aller Elemente im Array aus.

Summe der Elemente
Erfahren Sie mehr über Shell-Skripte
Abschluss
Wir alle wissen, dass Shell-Skripte sehr nützlich sind, um die Arbeitsproduktivität zu steigern und auch Zeit zu sparen. In diesem Artikel haben wir es also behandelt 30 sehr nützliche und am meisten betrügerische Beispiele für Shell-Skripte . Wir hoffen, dass diese vollständige Anleitung zum Beispiel für Shell-Skripte Ihnen hilft, alles über die Shell-Skripte zu verstehen.
echo Erstes Argument: echo Zweites Argument: Wenn wir das Skript mit „.example.sh hello_1 hello_2“ ausführen, wird Folgendes ausgegeben:

CLI-Argumente
11) Wie verwenden Sie die for-Schleife, um eine Liste von Werten zu durchlaufen?
Erstellen Sie einen Skriptnamen „example.sh“.
#!/bin/bash
Früchte = (Apfel, Banane, Kirsche, Dattel)
für Obst in ${fruits[@]}; Tun
echo Aktuelle Frucht: $fruit
Erledigt
Erläuterung:
Die Zeile „fruits=“ erstellt ein Array mit dem Namen „Früchte“ mit vier Elementen: Apfel, Banane, Kirsche und Dattel.
- für Obst in ${fruits[@]}; do: Diese Zeile startet eine for-Schleife. Hier ist, was jeder Teil bedeutet:
- für Obst: Dies deklariert eine Schleifenvariable namens Obst. In jeder Iteration der Schleife speichert Fruit den Wert des aktuellen Elements aus dem Fruit-Array.
- ${fruits[@]}: Dies ist eine Array-Erweiterung, die alle Elemente aus dem Fruit-Array übernimmt. Die ${…}-Syntax stellt sicher, dass jedes Element als separates Element behandelt wird.
- do: Dieses Schlüsselwort markiert den Anfang des Schleifenkörpers.
- echo Aktuelle Frucht: $fruit: Innerhalb der Schleife verwendet diese Zeile den Echo-Befehl, um den aktuellen Wert der Schleifenvariablen Frucht anzuzeigen. Für jede Frucht im Array wird eine Meldung wie Aktuelle Frucht: Apfel ausgegeben.
- done: Dieses Schlüsselwort markiert das Ende des Schleifenkörpers. Es teilt dem Skript mit, dass die Schleife beendet ist.

for-Schleife
12) Schreiben Sie ein Shell-Skript, das mithilfe einer Schleife die Summe der ganzen Zahlen von 1 bis N berechnet.
Erstellen Sie einen Skriptnamen „example.sh“.
#!/bin/bash
echo Geben Sie eine Zahl (N) ein:
lies N
Summe=0
for (( i=1; i<=$N; i++ )); Tun
sum=$((sum + i))
Erledigt
echo Die Summe der ganzen Zahlen von 1 bis $N ist: $sum
Erläuterung:
Das Skript fordert Sie zunächst dazu auf, mithilfe von „read“ eine Zahl (N) einzugeben. Diese Zahl bestimmt, wie oft die Schleife ausgeführt wird.
- Die Variablensumme wird auf 0 initialisiert. Diese Variable verfolgt die Summe der Ganzzahlen.
- Die for-Schleife beginnt mit for (( i=1; i<=$N; i++ )). Diese Schleifenstruktur wird verwendet, um eine Reihe von Aktionen eine bestimmte Anzahl von Malen zu wiederholen, in diesem Fall von 1 bis zum Wert N.
- Innerhalb der Schleife passieren folgende Dinge:
- i=1 setzt die Schleifenvariable i zu Beginn jeder Iteration auf 1.
- Die Schleifenbedingung i<=$N prüft, ob i immer noch kleiner oder gleich der angegebenen Zahl N ist.
- Wenn die Bedingung wahr ist, wird der Schleifenkörper ausgeführt.
- sum=$((sum + i)) berechnet den neuen Wert von sum, indem der aktuelle Wert von i dazu addiert wird. Dadurch werden die ganzen Zahlen von 1 bis zum aktuellen i-Wert addiert.
- Nach jeder Iteration erhöht i++ den Wert von i um 1.
- Die Schleife läuft weiter, bis die Bedingung i<=$N falsch wird (wenn i größer als N wird).
- Sobald die Schleife beendet ist, zeigt das Skript die Summe der ganzen Zahlen von 1 bis zur eingegebenen Zahl N an.

13) Erstellen Sie ein Skript, das nach einem bestimmten Wort in einer Datei sucht und dessen Vorkommen zählt.
Erstellen Sie einen Skriptnamen „word_count.sh“.
#!/bin/bash
echo Geben Sie das Wort ein, nach dem gesucht werden soll:
Zielwort lesen
echo Geben Sie den Dateinamen ein:
Dateinamen lesen
count=$(grep -o -w $target_word $filename | wc -l)
echo Das Wort „$target_word“ kommt $count mal in „$filename“ vor.
Erläuterung:
- echo Geben Sie das zu suchende Wort ein:: In dieser Zeile wird eine Meldung angezeigt, in der der Benutzer aufgefordert wird, ein Wort einzugeben, nach dem er in einer Datei suchen möchte.
- read target_word: Diese Zeile liest die vom Benutzer bereitgestellten Eingaben und speichert sie in einer Variablen namens target_word.
- echo Geben Sie den Dateinamen ein:: In dieser Zeile wird eine Meldung angezeigt, in der der Benutzer aufgefordert wird, den Namen der Datei einzugeben, in der er suchen möchte.
- Dateinamen lesen: Diese Zeile liest die vom Benutzer bereitgestellten Eingaben und speichert sie in einer Variablen namens Dateiname.
- count=$(grep -o -w $target_word $filename | wc -l): Diese Zeile erledigt die Hauptarbeit des Skripts. Lassen Sie es uns weiter aufschlüsseln:
- grep -o -w $target_word $filename: Dieser Teil des Befehls sucht nach Vorkommen des target_word im angegebenen Dateinamen. Die Optionen -o und -w stellen sicher, dass nur Ganzwortübereinstimmungen gezählt werden.
- |: Dies ist eine Pipe, die die Ausgabe des vorherigen Befehls übernimmt und als Eingabe an den nächsten Befehl sendet.
- wc -l: Dieser Teil des Befehls verwendet den Befehl wc, um die Anzahl der Zeilen in der Eingabe zu zählen. Die Option -l zählt gezielt die Zeilen.
- Der gesamte Befehl berechnet die Anzahl der Vorkommen des Zielworts in der Datei und weist diese Anzahl der Variablen coun zu

14) Erklären Sie die Unterschiede zwischen Standardausgabe (stdout) und Standardfehler (stderr).
Der Hauptunterschied zwischen Standardausgabe (stdout) und Standardfehler (stderr) ist wie folgt:
- Standardausgabe (stdout): Dies ist der Standardausgabestream, in den die reguläre Ausgabe eines Befehls geht. Es wird standardmäßig auf dem Terminal angezeigt. Sie können es mit> in eine Datei umleiten.
- Standardfehler (stderr): Dies ist der Ausgabestream für Fehlermeldungen und Warnungen. Es wird standardmäßig auch auf dem Terminal angezeigt. Sie können es mit 2> in eine Datei umleiten.
15) Erklären Sie das Konzept bedingter Anweisungen im Shell-Scripting.
Bedingte Anweisungen im Shell-Scripting ermöglichen es uns, Entscheidungen zu treffen und den Ablauf unseres Skripts auf der Grundlage bestimmter Bedingungen zu steuern. Sie ermöglichen unserem Skript, unterschiedliche Befehlssätze auszuführen, je nachdem, ob eine bestimmte Bedingung wahr oder falsch ist. Die primären bedingten Anweisungen beim Shell-Scripting sind die if-Anweisung, die elif-Anweisung (optional) und die else-Anweisung (optional).
Hier ist die Grundstruktur einer bedingten Anweisung im Shell-Scripting:
if [ Bedingung ]; Dann
# Befehle, die ausgeführt werden sollen, wenn die Bedingung wahr ist
elif [ another_condition ]; Dann
# Befehle, die ausgeführt werden sollen, wenn another_condition wahr ist (optional)
anders
# Befehle, die ausgeführt werden sollen, wenn keine der Bedingungen wahr ist (optional)
Sei
Erläuterung:
- [ Bedingung ] = Befehl, der die Bedingung auswertet und einen Exit-Status „wahr“ (0) oder „falsch“ (ungleich Null) zurückgibt.
- then = Es handelt sich um ein Schlüsselwort, das angibt, dass die darauf folgenden Befehle ausgeführt werden, wenn die Bedingung „true“ ergibt.
- elif = (Abkürzung für else if) Dies ist ein Abschnitt, der es uns ermöglicht, zusätzliche zu überprüfende Bedingungen anzugeben.
- else = es ist ein Abschnitt, der Befehle enthält, die ausgeführt werden, wenn keine der Bedingungen wahr ist.
- fi = Es ist ein Schlüsselwort, das das Ende des bedingten Blocks markiert.
16) Wie liest man Zeilen aus einer Datei in einem Shell-Skript?
Zu Zeilen lesen Aus einer Datei innerhalb eines Shell-Skripts können wir verschiedene Methoden verwenden, aber ein gängiger Ansatz ist die Verwendung einer While-Schleife in Kombination mit dem Lesebefehl. So können wir es machen:
Java-Typkonvertierung und -Casting
#!/bin/bash
file=/home/jayeshkumar/jayesh.txt
# Überprüfen Sie, ob die Datei vorhanden ist
if [ -e $file ]; Dann
while IFS= read -r line; Tun
echo Zeile gelesen: $line
# Fügen Sie hier Ihre Verarbeitungslogik hinzu
erledigt <$file
anders
echo Datei nicht gefunden: $file
Sei
Erläuterung:
- #!/bin/bash: Dies ist die Shebang-Zeile, die den Interpreter (/bin/bash) angibt, der zum Ausführen des Skripts verwendet werden soll.
- file=/home/jayeshkumar/jayesh.txt: Diese Zeile definiert die Variablendatei und weist den vollständigen Pfad zur Datei jayesh.txt im Verzeichnis /home/jayeshkumar zu. Ändern Sie diesen Pfad so, dass er mit dem tatsächlichen Pfad der Datei übereinstimmt, die Sie lesen möchten.
- if [ -e $file ]; then: Diese Zeile beginnt eine if-Anweisung. Es prüft, ob die durch die Variable $file angegebene Datei existiert. Das Flag -e prüft, ob eine Datei vorhanden ist.
- while IFS= read -r line; do: Diese Zeile initiiert eine While-Schleife, die Zeilen aus der Datei liest.
- IFS=: Das IFS (Internal Field Separator) wird auf einen leeren Wert gesetzt, um führende und nachfolgende Leerzeichen beizubehalten.
- read -r line: Dies liest die aktuelle Zeile aus der Datei und speichert sie in der Variablen line.
- echo Zeile gelesen: $line: Diese Zeile gibt den Inhalt der Zeile aus, die aus der Datei gelesen wurde. Die Variable $line enthält den Inhalt der aktuellen Zeile.
- # Fügen Sie hier Ihre Verarbeitungslogik hinzu: Dies ist ein Platzhalterkommentar, in dem Sie Ihre eigene Logik zur Verarbeitung jeder Zeile hinzufügen können. Beispielsweise können Sie die Zeile analysieren, Informationen extrahieren oder bestimmte Aktionen basierend auf dem Inhalt ausführen.
- done <$file: Dies markiert das Ende der while-Schleife. Das < $file leitet den Inhalt der Datei um, damit er von der Schleife gelesen werden kann.
- else: Wenn die Datei nicht existiert (die Bedingung in der if-Anweisung ist falsch), führt das Skript den Code unter dem else-Zweig aus.
- echo Datei nicht gefunden: $file: Diese Zeile gibt eine Fehlermeldung aus, die angibt, dass die angegebene Datei nicht gefunden wurde.
- fi: Diese Zeile markiert das Ende der if-Anweisung.

Datei lesen
Hier haben wir „“ verwendet pwd ` Befehl, um den Pfad des aktuellen Verzeichnisses abzurufen.
17) Schreiben Sie eine Funktion in ein Shell-Skript, die die Fakultät einer bestimmten Zahl berechnet.
Hier ist das Skript, dasBerechnen Sie die Fakultäteiner gegebenen Zahl.
#!/bin/bash
# Definieren Sie eine Funktion zur Berechnung der Fakultät
berechne_faktorial() {
num=
Tatsache=1
for ((i=1; i<=num; i++)); Tun
fact=$((fact * i))
Erledigt
echo $fact
}
# Fordern Sie den Benutzer auf, eine Nummer einzugeben
echo Geben Sie eine Zahl ein:
lese input_num
# Rufen Sie die Funktion „calcure_factorial“ mit der Eingabenummer auf
factial_result=$(calculate_factorial $input_num)
# Zeigen Sie das faktorielle Ergebnis an
echo Factorial von $input_num ist: $factorial_result
Erläuterung:
- Das Skript beginnt mit der Shebang-Zeile #!/bin/bash, um den Interpreter anzugeben.
- berechne_faktorial() ist als Funktion definiert. Es benötigt ein Argument, num, das die Zahl ist, für die die Fakultät berechnet werden muss.
- Innerhalb der Funktion wird fact auf 1 initialisiert. Diese Variable speichert das Fakultätsergebnis.
- Die for-Schleife iteriert von 1 bis zur angegebenen Zahl (num). In jeder Iteration multipliziert es den aktuellen Wert von fact mit dem Schleifenindex i.
- Nach Abschluss der Schleife enthält die Faktenvariable die berechnete Fakultät.
- Das Skript fordert den Benutzer mit „read“ zur Eingabe einer Zahl auf.
- Die Funktion „calcure_factorial“ wird mit der vom Benutzer angegebenen Zahl aufgerufen und das Ergebnis wird in der Variablen „factorial_result“ gespeichert.
- Abschließend zeigt das Skript das berechnete Fakultätsergebnis an.

Fakultät
18) Wie gehen Sie mit Signalen wie Strg+C in einem Shell-Skript um?
In einem Shell-Skript können Sie Signale wie Strg+C (auch bekannt als SIGINT) mit dem Trap-Befehl verarbeiten. Strg+C generiert ein SIGINT-Signal, wenn der Benutzer es drückt, um das laufende Skript oder Programm zu unterbrechen. Mithilfe des Trap-Befehls können Sie Aktionen festlegen, die ausgeführt werden sollen, wenn ein bestimmtes Signal empfangen wird. So gehen Sie mit Signalen wie Strg+C in einem Shell-Skript um:
#!/bin/bash
Aufräumen() {
echo Skript unterbrochen. Bereinigung wird durchgeführt…
# Fügen Sie hier Ihre Bereinigungsaktionen hinzu
Ausgang 1
}
# Richten Sie eine Falle ein, um die Bereinigungsfunktion aufzurufen, wenn Strg+C (SIGINT) empfangen wird
Fallenbereinigung SIGINT
# Rest Ihres Skripts
echo Laufen…
Schlaf 10
echo Fertig.
Der Umgang mit Signalen ist wichtig, um Skripte robust zu machen und sicherzustellen, dass sie unerwartete Unterbrechungen ordnungsgemäß verarbeiten. Sie können die Bereinigungsfunktion an Ihre spezifischen Anforderungen anpassen, z. B. Dateien schließen, Prozesse stoppen oder Informationen protokollieren, bevor das Skript beendet wird.
Erläuterung:
- #!/bin/bash: Diese Shebang-Zeile gibt den Interpreter an, der zum Ausführen des Skripts verwendet werden soll.
- cleanup() { … }: Dies definiert eine Funktion namens cleanup. In diese Funktion können Sie alle Aktionen einschließen, die ausgeführt werden müssen, wenn das Skript unterbrochen wird, z. B. das Schließen von Dateien, das Freigeben von Ressourcen oder das Durchführen anderer Bereinigungsaufgaben.
- trap cleanup SIGINT: Der trap-Befehl wird zum Einrichten eines Signalhandlers verwendet. In diesem Fall wird angegeben, dass die Bereinigungsfunktion ausgeführt werden soll, wenn das SIGINT-Signal (Strg+C) empfangen wird.
- echo Running…, sleep 10, echo Finished.: Dies sind nur Beispielbefehle, um die Ausführung eines Skripts zu simulieren.

19) Erstellen Sie ein Skript, das nach doppelten Zeilen in einer Textdatei sucht und diese entfernt.
Hier ist unser Linux-Skript, in dem wir doppelte Zeilen aus einer Textdatei entfernen.
#!/bin/bash
input_file=input.txt
Ausgabedatei=Ausgabe.txt
$input_file | sortieren uniq> $output_file
echo Doppelte Zeilen erfolgreich entfernt.
Erläuterung:
- Das Skript beginnt mit einem Shebang (#!/bin/bash), der angibt, dass das Skript mithilfe der Bash-Shell interpretiert werden soll.
- Die Variable input_file wird auf den Namen der Eingabedatei gesetzt, die doppelte Zeilen enthält (ändern Sie diesen in Ihren tatsächlichen Namen der Eingabedatei).
- Die Variable „output_file“ wird auf den Namen der Ausgabedatei gesetzt, aus der die Duplikate entfernt werden (ändern Sie diesen in den gewünschten Namen der Ausgabedatei).
- Das Skript verwendet den Sortierbefehl, um die Zeilen in der Eingabedatei zu sortieren. Durch das Sortieren der Zeilen wird sichergestellt, dass doppelte Zeilen gruppiert werden.
- Die sortierten Zeilen werden dann durch den Befehl uniq geleitet, der aufeinanderfolgende doppelte Zeilen entfernt. Die Ausgabe dieses Prozesses wird in die Ausgabedatei umgeleitet.
- Nachdem die Duplikate entfernt wurden, gibt das Skript eine Erfolgsmeldung aus.

Entfernen doppelter Zeilen
Hier verwenden wir „ Katze ` um den Text in der Textdatei anzuzeigen.
20) Schreiben Sie ein Skript, das ein sicheres Zufallspasswort generiert.
Hier ist unser Skript zum Generieren eines sicheren Zufallspassworts.
#!/bin/bash
# Funktion zum Generieren eines zufälligen Passworts
generiere Passwort() {
tr -dc 'A-Za-z0-9!@#$%^&*()_+{}[]'
}
# Rufen Sie die Funktion auf und speichern Sie das generierte Passwort
passwort=$(generate_password)
echo Generiertes Passwort: $password
Hinweis: Der Benutzer kann die Länge seines Passworts entsprechend ändern, indem er die Zahl „12“ ersetzt.
Erläuterung:
- Das Skript beginnt mit einem Shebang (#!/bin/bash), der angibt, dass es mit der Bash-Shell interpretiert werden soll.
- Die Funktion „generate_password“ ist so definiert, dass sie ein zufälliges Passwort generiert. So funktioniert das:
- tr -dc 'A-Za-z0-9!@#$%^&*()_+{}[]'
- falten -w 12 unterteilt die gefilterten Zufallsdaten in Zeilen mit einer Breite von jeweils 12 Zeichen.
- head -n 1 wählt die erste Zeile aus und gibt uns effektiv eine zufällige Folge von Zeichen der Länge 12.
- Der Variable „password“ wird das Ergebnis des Aufrufs der Funktion „generate_password“ zugewiesen.
- Abschließend wird das generierte Passwort mittels Echo angezeigt.

21) Schreiben Sie ein Shell-Skript, das die Gesamtgröße aller Dateien in einem Verzeichnis berechnet.
Hier ist ein Shell-Skript zur Berechnung der Gesamtgröße aller Dateien in einem Verzeichnis.
#!/bin/bash
Verzeichnis=/Pfad/zu/Ihrem/Verzeichnis
total_size=$(du -csh $directory | grep total | awk ‚{print }‘)
echo Gesamtgröße der Dateien in $directory: $total_size
Erläuterung:
- Das Skript beginnt mit dem Befehl #!/bin/bash, der darauf hinweist, dass es mithilfe der Bash-Shell interpretiert werden soll.
- Die Verzeichnisvariable wird auf den Pfad des Verzeichnisses gesetzt, für das Sie die Gesamtdateigröße berechnen möchten. Ersetzen Sie /path/to/your/directory durch den tatsächlichen Pfad.
- Der Befehl du wird verwendet, um die Dateispeichernutzung abzuschätzen. Die verwendeten Optionen sind:
- -c: Erzeuge eine Gesamtsumme.
- -s: Zeigt nur die Gesamtgröße des angegebenen Verzeichnisses an.
- -h: Druckgrößen in einem für Menschen lesbaren Format (z. B. KB, MB, GB).
- Die Ausgabe von du wird an grep total weitergeleitet, um die Zeile herauszufiltern, die die Gesamtgröße enthält.
- awk „{print }“ wird verwendet, um das erste Feld (Gesamtgröße) aus der Zeile zu extrahieren.
- Die berechnete Gesamtgröße wird in der Variablen total_size gespeichert.
- Abschließend zeigt das Skript mithilfe von Echo die Gesamtgröße an.

Gesamtgröße der Dateien
Hier haben wir „“ verwendet pwd ` Befehl, um den aktuellen Verzeichnispfad anzuzeigen.
22) Erklären Sie den Unterschied zwischen if- und elif-Anweisungen beim Shell-Scripting.
| Besonderheit | `if`Staiftement | `elif`-Erklärung |
| Zweck | Erklären Sie den Unterschied zwischen if- und elif-Anweisungen beim Shell-Scripting. | Stellt alternative Bedingungen bereit, um zu überprüfen, ob die anfängliche If-Bedingung falsch ist. |
| Verwendung | Wird für den Anfangszustand verwendet. | Wird nach der anfänglichen if-Bedingung verwendet, um zusätzliche Bedingungen zu überprüfen. |
| Anzahl der Blöcke | Kann nur einen if-Block haben. | Kann mehrere elif-Blöcke haben, aber nur einen else-Block (optional). |
| Ausführung | Führt den mit der if-Anweisung verknüpften Codeblock aus, wenn die Bedingung wahr ist. Wenn die Bedingung falsch ist, wird der else-Block (falls vorhanden) ausgeführt (optional). | Überprüft jede Elif-Bedingung der Reihe nach. Wenn eine elif-Bedingung wahr ist, wird der entsprechende Codeblock ausgeführt und das Skript verlässt den gesamten bedingten Block. Wenn keine der elif-Bedingungen wahr ist, wird der else-Block (falls vorhanden) ausgeführt. |
| Verschachtelte Strukturen | Kann in anderen if-, elif- oder else-Blöcken verschachtelt werden. | Kann nicht in einem anderen elif-Block verschachtelt werden, kann aber in einem if- oder else-Block verwendet werden. |
Lassen Sie es uns anhand eines Beispiels verstehen.
#!/bin/bash
Zahl=5
if [ $number -gt 10 ]; Dann
echo $number ist größer als 10
anders
echo $number ist nicht größer als 10
Sei
Echo ——–
if [ $number -gt 10 ]; Dann
echo $number ist größer als 10
elif [ $number -eq 10 ]; Dann
echo $number ist gleich 10
anders
echo $number ist kleiner als 10
Sei
Erläuterung:
In diesem Beispiel prüft der erste if-Block, ob die Zahl größer als 10 ist. Wenn nicht, gibt er eine Meldung aus, die angibt, dass die Zahl nicht größer als 10 ist. Der zweite Block mit elif-Anweisungen prüft nacheinander mehrere Bedingungen, bis eine davon wahr ist. Da in diesem Fall der Wert von number 5 ist, lautet die Ausgabe:

if_elif Unterschied
23) Wie nutzt man eine While-Schleife, um Befehle wiederholt auszuführen?
Bei der Shell-Skripterstellung wird eine While-Schleife verwendet, um eine Reihe von Befehlen wiederholt auszuführen, solange eine bestimmte Bedingung erfüllt ist. Die Schleife führt die Befehle so lange aus, bis die Bedingung falsch wird.
Hier ist die grundlegende Syntax einer While-Schleife:
while [ Bedingung ]; Tun
# Auszuführende Befehle
Erledigt
Erläuterung:
- Die „while“-Schleife beginnt mit dem Schlüsselwort „while“, gefolgt von einer in eckigen Klammern eingeschlossenen Bedingung „[ ]“.
- Der Schleifenkörper, der die auszuführenden Befehle enthält, ist in die Schlüsselwörter „do“ und „done“ eingeschlossen.
- Die Schleife prüft zunächst die Bedingung. Wenn die Bedingung wahr ist, werden die Befehle im Schleifenkörper ausgeführt. Nachdem der Schleifenkörper ausgeführt wurde, wird die Bedingung erneut überprüft und der Vorgang wiederholt, bis die Bedingung falsch wird.
Beispiel: Wenn wir Zahlen von 1 bis 5 drucken möchten
#!/bin/bash
Zähler=1
while [ $counter -le 5 ]; Tun
Echo-Nummer: $counter
counter=$((counter + 1))
Erledigt
Erläuterung:
- Die Zählervariable wird auf 1 gesetzt.
- Die while-Schleife prüft, ob der Wert von counter kleiner oder gleich 5 ist. Solange diese Bedingung erfüllt ist, wird die Schleife weiter ausgeführt.
- Innerhalb der Schleife wird der aktuelle Wert des Zählers mithilfe von Echo ausgegeben.
- Der Zähler wird mit dem Ausdruck $((Zähler + 1)) um 1 erhöht.

while-Schleife
24) Erstellen Sie ein Shell-Skript, das alle leeren Dateien in einem Verzeichnis findet und auflistet.
Shell-Skript, mit dem Sie mithilfe der Befehle „find“ und „stat“ alle leeren Dateien in einem Verzeichnis suchen und auflisten können:
#!/bin/bash
Verzeichnis=″
if [ -z $directory ]; Dann
Echo-Nutzung: Bei allen Linux-Distributionen ist das Shell-Skript wie ein Zauberstab, der den Prozess automatisiert, Benutzern Zeit spart und die Produktivität steigert. Dieses Tutorial zur SOLL-Skripterstellung stellt Ihnen mehr als 25 SOLL-Skripting-Beispiele vor.
Aber bevor wir zum Thema übergehen Shell-Scripting Beispiele: Lassen Sie uns Shell-Skripte und die tatsächlichen Anwendungsfälle von Shell-Skripten verstehen.
Was ist Shell-Skript?
Nun, die Schale ist eine CLI ( Befehlszeileninterpreter ), das in einem Textfenster ausgeführt wird, in dem Benutzer Shell-Befehle verwalten und ausführen können. Andererseits wird der Prozess des Schreibens einer Reihe von Befehlen, die auf einem Linux-System ausgeführt werden sollen. Eine Datei, die solche Anweisungen enthält, wird als Bash-Skript bezeichnet.
Verwendung von Shell-Skripten
Im Folgenden sind einige häufige Verwendungszwecke von Shell Script aufgeführt:
- Aufgabenautomatisierung – Es kann verwendet werden, um sich wiederholende Aufgaben wie regelmäßige Backups und Softwareinstallationsaufgaben zu automatisieren.
- Anpassung - Man kann Shell-Skripte verwenden, um seine Befehlszeilenumgebung zu entwerfen und seine Aufgabe je nach Bedarf einfach auszuführen.
- Dokumentenverwaltung - Die Shell-Skripte können auch zum Verwalten und Bearbeiten von Dateien und Verzeichnissen verwendet werden, beispielsweise zum Verschieben, Kopieren, Umbenennen oder Löschen von Dateien.
Beispiele für Shell-Skripte unter Linux
1) Was bedeutet das Shebang (#!) am Anfang eines Shell-Skripts?
Der Mist (#!) am Anfang eines Skripts gibt den Interpreter an, der zum Ausführen des Skripts verwendet werden soll. Es teilt dem System mit, welche Shell oder welcher Interpreter die Befehle des Skripts interpretieren soll.
Zum Beispiel: Angenommen, wir haben ein Skript mit dem Namen myscript.sh geschrieben in der Bash-Shell:

Mist
In diesem Beispiel:
- Das #!/bin/bash am Anfang des Skripts gibt an, dass das Skript mithilfe der Bash-Shell interpretiert werden soll.
- Die Echo-Befehle werden zum Drucken von Nachrichten an das Terminal verwendet.
2) Wie führt man ein Shell-Skript über die Befehlszeile aus?
Um ein Shell-Skript über die Befehlszeile auszuführen, müssen wir die folgenden Schritte ausführen:
- Stellen Sie sicher, dass die Skriptdatei über ausführbare Berechtigungen verfügt chmod-Befehl :
chmod +x myscript.sh>
- Führen Sie das Skript unter Verwendung seines Dateinamens aus:
./myscript.sh>
Hier muss ersetzt werden myscrtipt.sh mit Ihrem Skriptnamen.
3) Schreiben Sie ein Shell-Skript, das techcodeview.com auf dem Terminal ausgibt.
Erstellen Sie einen Skriptnamen „myscript.sh“ (wir verwenden „ Weil ` Editor, Sie können einen beliebigen Editor auswählen)
vim myscript.sh>
#!/bin/bash
# Dieses Skript druckt techcodeview.com auf dem Terminal
echo techcodeview.com

Namen drucken
Wir machen unser Skript mit „chmod +x“ ausführbar, führen es dann mit „./myscipt.sh“ aus und erhalten die gewünschte Ausgabe techcodeview.com.
4) Erklären Sie den Zweck des Echo-Befehls beim Shell-Scripting.
Der Echo-Befehl dient der Anzeige von Texten oder Variablen auf dem Terminal. Es wird häufig zum Drucken von Nachrichten, Variablenwerten und zum Generieren von Programmausgaben verwendet.

Echo-Befehl
In diesem Beispiel haben wir „echo“ direkt auf dem Terminal ausgeführt, da es innerhalb des Shell-Skripts genauso funktioniert.
5) Wie kann man einer Variablen in einem Shell-Skript einen Wert zuweisen?
Variablen werden Werte mit dem Zuweisungsoperator = zugewiesen.
Zum Beispiel:
#!/bin/bash
# Einer Variablen einen Wert zuweisen
Name=Jayesh
Alter=21
echo $name $age
Erläuterung:
- Der Namensvariablen wird der Wert Jayesh zugewiesen.
- Der Altersvariable wird der Wert 21 zugewiesen.
- echo wird zum Drucken verwendet und `$name` `$age` wird verwendet, um den in den Variablen gespeicherten Wert aufzurufen.

6) Schreiben Sie ein Shell-Skript, das den Namen eines Benutzers als Eingabe verwendet und ihn begrüßt.
Erstellen Sie einen Skriptnamen „example.sh“.
#!/bin/bash
# Fragen Sie den Benutzer nach seinem Namen
echo Wie heißt du?
Namen lesen
# Begrüßen Sie den Benutzer
echo Hallo, $name! Freut mich, Sie kennenzulernen.
Erläuterung:
- #!/bin/bash: Das ist die Shebang-Zeile. Es weist das System an, den Bash-Interpreter zum Ausführen des Skripts zu verwenden.
- # Fragen Sie den Benutzer nach seinem Namen: Dies ist ein Kommentar. Es bietet Kontext zum kommenden Code. Kommentare werden vom Interpreter ignoriert.
- echo Wie heißt du?: Der echo-Befehl wird verwendet, um den Text in doppelten Anführungszeichen auf dem Terminal anzuzeigen.
- Lesename: Der Lesebefehl wartet auf die Eingabe von Text durch den Benutzer und speichert ihn im Variablennamen.
- echo Hallo, $name! Freut mich, Sie kennenzulernen.: Diese Zeile verwendet den echo-Befehl, um eine Begrüßungsnachricht zu drucken, die den Wert der Namensvariablen enthält, der aus der Benutzereingabe erfasst wurde.

7) Wie fügt man einem Shell-Skript Kommentare hinzu?
Kommentare im Shell-Scripting werden verwendet, um Erklärungen oder Kontext zum Code bereitzustellen. Sie werden vom Interpreter ignoriert und sind nur für Menschen gedacht, die das Skript lesen. Mit dem #-Symbol können Sie Kommentare hinzufügen.
#!/bin/bash
# Dies ist ein Kommentar, der den Zweck des Skripts erläutert
echo gfg
8) Erstellen Sie ein Shell-Skript, das prüft, ob eine Datei im aktuellen Verzeichnis vorhanden ist.
Hier ist ein Skript, das prüft, ob eine Datei namens example.txt im aktuellen Verzeichnis vorhanden ist:
#!/bin/bash
file=example.txt
# Überprüfen Sie, ob die Datei vorhanden ist
if [ -e $file ]; Dann
echo Datei existiert: $file
anders
echo Datei nicht gefunden: $file
Sei
Erläuterung:
- #!/bin/bash: Dies ist die Shebang-Zeile, die den Interpreter (/bin/bash) angibt, der zum Ausführen des Skripts verwendet werden soll.
- file=example.txt: Diese Zeile definiert die Variablendatei und weist ihr den Wert example.txt zu. Sie können dies durch den Namen der Datei ersetzen, nach der Sie suchen möchten.
- if [ -e $file ]; then: Diese Zeile beginnt eine if-Anweisung. Die Bedingung [ -e $file ] prüft, ob die durch den Wert der Dateivariablen angegebene Datei existiert. Das Flag -e wird verwendet, um zu prüfen, ob eine Datei vorhanden ist.
- echo Datei existiert: $datei: Wenn die Bedingung wahr ist (d. h. die Datei existiert), gibt diese Zeile eine Meldung aus, die angibt, dass die Datei existiert, zusammen mit dem Namen der Datei.
- else: Wenn die Bedingung falsch ist (d. h. die Datei existiert nicht), führt das Skript den Code unter dem else-Zweig aus.
- echo Datei nicht gefunden: $datei: Diese Zeile gibt eine Fehlermeldung aus, die angibt, dass die angegebene Datei nicht gefunden wurde, zusammen mit dem Namen der Datei.
- fi: Diese Zeile markiert das Ende der if-Anweisung.

Datei wird gefunden
9) Was ist der Unterschied zwischen einfachen Anführungszeichen (‘) und doppelten Anführungszeichen () beim Shell-Scripting?
Einfache Anführungszeichen (‘) und doppelte Anführungszeichen () werden zum Einschließen von Zeichenfolgen in Shell-Skripten verwendet, haben jedoch unterschiedliche Verhaltensweisen:
- Einfache Anführungszeichen: Alles zwischen einfachen Anführungszeichen wird als Literalzeichenfolge behandelt. Variablennamen und die meisten Sonderzeichen werden nicht erweitert.
- Doppelte Anführungszeichen: Variablen und bestimmte Sonderzeichen in doppelten Anführungszeichen werden erweitert. Der Inhalt unterliegt der Variablenersetzung und der Befehlsersetzung.
#!/bin/bash
abcd=Hallo
echo ‚$abcd‘ # Ausgabe: $abcd
echo $abcd # Ausgabe: Hallo
10) Wie können Sie Befehlszeilenargumente in einem Shell-Skript verwenden?
Kommandozeilenargumente sind Werte, die einem Skript bei seiner Ausführung bereitgestellt werden. Auf sie kann innerhalb des Skripts über spezielle Variablen wie $1, $2 usw. zugegriffen werden, wobei $1 das erste Argument, $2 das zweite Argument usw. darstellt.
Zum Beispiel: Wenn unser Skriptname in „example.sh“ steht
#!/bin/bash
echo Skriptname: $0
echo Erstes Argument: $1
echo Zweites Argument: $2
Wenn wir das Skript mit „.example.sh hello_1 hello_2“ ausführen, wird Folgendes ausgegeben:

CLI-Argumente
11) Wie verwenden Sie die for-Schleife, um eine Liste von Werten zu durchlaufen?
Erstellen Sie einen Skriptnamen „example.sh“.
#!/bin/bash
Früchte = (Apfel, Banane, Kirsche, Dattel)
für Obst in ${fruits[@]}; Tun
echo Aktuelle Frucht: $fruit
Erledigt
Erläuterung:
Die Zeile „fruits=“ erstellt ein Array mit dem Namen „Früchte“ mit vier Elementen: Apfel, Banane, Kirsche und Dattel.
- für Obst in ${fruits[@]}; do: Diese Zeile startet eine for-Schleife. Hier ist, was jeder Teil bedeutet:
- für Obst: Dies deklariert eine Schleifenvariable namens Obst. In jeder Iteration der Schleife speichert Fruit den Wert des aktuellen Elements aus dem Fruit-Array.
- ${fruits[@]}: Dies ist eine Array-Erweiterung, die alle Elemente aus dem Fruit-Array übernimmt. Die ${…}-Syntax stellt sicher, dass jedes Element als separates Element behandelt wird.
- do: Dieses Schlüsselwort markiert den Anfang des Schleifenkörpers.
- echo Aktuelle Frucht: $fruit: Innerhalb der Schleife verwendet diese Zeile den Echo-Befehl, um den aktuellen Wert der Schleifenvariablen Frucht anzuzeigen. Für jede Frucht im Array wird eine Meldung wie Aktuelle Frucht: Apfel ausgegeben.
- done: Dieses Schlüsselwort markiert das Ende des Schleifenkörpers. Es teilt dem Skript mit, dass die Schleife beendet ist.

for-Schleife
12) Schreiben Sie ein Shell-Skript, das mithilfe einer Schleife die Summe der ganzen Zahlen von 1 bis N berechnet.
Erstellen Sie einen Skriptnamen „example.sh“.
#!/bin/bash
echo Geben Sie eine Zahl (N) ein:
lies N
Summe=0
for (( i=1; i<=$N; i++ )); Tun
sum=$((sum + i))
Erledigt
echo Die Summe der ganzen Zahlen von 1 bis $N ist: $sum
Erläuterung:
Das Skript fordert Sie zunächst dazu auf, mithilfe von „read“ eine Zahl (N) einzugeben. Diese Zahl bestimmt, wie oft die Schleife ausgeführt wird.
- Die Variablensumme wird auf 0 initialisiert. Diese Variable verfolgt die Summe der Ganzzahlen.
- Die for-Schleife beginnt mit for (( i=1; i<=$N; i++ )). Diese Schleifenstruktur wird verwendet, um eine Reihe von Aktionen eine bestimmte Anzahl von Malen zu wiederholen, in diesem Fall von 1 bis zum Wert N.
- Innerhalb der Schleife passieren folgende Dinge:
- i=1 setzt die Schleifenvariable i zu Beginn jeder Iteration auf 1.
- Die Schleifenbedingung i<=$N prüft, ob i immer noch kleiner oder gleich der angegebenen Zahl N ist.
- Wenn die Bedingung wahr ist, wird der Schleifenkörper ausgeführt.
- sum=$((sum + i)) berechnet den neuen Wert von sum, indem der aktuelle Wert von i dazu addiert wird. Dadurch werden die ganzen Zahlen von 1 bis zum aktuellen i-Wert addiert.
- Nach jeder Iteration erhöht i++ den Wert von i um 1.
- Die Schleife läuft weiter, bis die Bedingung i<=$N falsch wird (wenn i größer als N wird).
- Sobald die Schleife beendet ist, zeigt das Skript die Summe der ganzen Zahlen von 1 bis zur eingegebenen Zahl N an.

13) Erstellen Sie ein Skript, das nach einem bestimmten Wort in einer Datei sucht und dessen Vorkommen zählt.
Erstellen Sie einen Skriptnamen „word_count.sh“.
#!/bin/bash
echo Geben Sie das Wort ein, nach dem gesucht werden soll:
Zielwort lesen
echo Geben Sie den Dateinamen ein:
Dateinamen lesen
count=$(grep -o -w $target_word $filename | wc -l)
echo Das Wort „$target_word“ kommt $count mal in „$filename“ vor.
Erläuterung:
- echo Geben Sie das zu suchende Wort ein:: In dieser Zeile wird eine Meldung angezeigt, in der der Benutzer aufgefordert wird, ein Wort einzugeben, nach dem er in einer Datei suchen möchte.
- read target_word: Diese Zeile liest die vom Benutzer bereitgestellten Eingaben und speichert sie in einer Variablen namens target_word.
- echo Geben Sie den Dateinamen ein:: In dieser Zeile wird eine Meldung angezeigt, in der der Benutzer aufgefordert wird, den Namen der Datei einzugeben, in der er suchen möchte.
- Dateinamen lesen: Diese Zeile liest die vom Benutzer bereitgestellten Eingaben und speichert sie in einer Variablen namens Dateiname.
- count=$(grep -o -w $target_word $filename | wc -l): Diese Zeile erledigt die Hauptarbeit des Skripts. Lassen Sie es uns weiter aufschlüsseln:
- grep -o -w $target_word $filename: Dieser Teil des Befehls sucht nach Vorkommen des target_word im angegebenen Dateinamen. Die Optionen -o und -w stellen sicher, dass nur Ganzwortübereinstimmungen gezählt werden.
- |: Dies ist eine Pipe, die die Ausgabe des vorherigen Befehls übernimmt und als Eingabe an den nächsten Befehl sendet.
- wc -l: Dieser Teil des Befehls verwendet den Befehl wc, um die Anzahl der Zeilen in der Eingabe zu zählen. Die Option -l zählt gezielt die Zeilen.
- Der gesamte Befehl berechnet die Anzahl der Vorkommen des Zielworts in der Datei und weist diese Anzahl der Variablen coun zu

14) Erklären Sie die Unterschiede zwischen Standardausgabe (stdout) und Standardfehler (stderr).
Der Hauptunterschied zwischen Standardausgabe (stdout) und Standardfehler (stderr) ist wie folgt:
- Standardausgabe (stdout): Dies ist der Standardausgabestream, in den die reguläre Ausgabe eines Befehls geht. Es wird standardmäßig auf dem Terminal angezeigt. Sie können es mit> in eine Datei umleiten.
- Standardfehler (stderr): Dies ist der Ausgabestream für Fehlermeldungen und Warnungen. Es wird standardmäßig auch auf dem Terminal angezeigt. Sie können es mit 2> in eine Datei umleiten.
15) Erklären Sie das Konzept bedingter Anweisungen im Shell-Scripting.
Bedingte Anweisungen im Shell-Scripting ermöglichen es uns, Entscheidungen zu treffen und den Ablauf unseres Skripts auf der Grundlage bestimmter Bedingungen zu steuern. Sie ermöglichen unserem Skript, unterschiedliche Befehlssätze auszuführen, je nachdem, ob eine bestimmte Bedingung wahr oder falsch ist. Die primären bedingten Anweisungen beim Shell-Scripting sind die if-Anweisung, die elif-Anweisung (optional) und die else-Anweisung (optional).
Hier ist die Grundstruktur einer bedingten Anweisung im Shell-Scripting:
if [ Bedingung ]; Dann
# Befehle, die ausgeführt werden sollen, wenn die Bedingung wahr ist
elif [ another_condition ]; Dann
# Befehle, die ausgeführt werden sollen, wenn another_condition wahr ist (optional)
anders
# Befehle, die ausgeführt werden sollen, wenn keine der Bedingungen wahr ist (optional)
Sei
Erläuterung:
- [ Bedingung ] = Befehl, der die Bedingung auswertet und einen Exit-Status „wahr“ (0) oder „falsch“ (ungleich Null) zurückgibt.
- then = Es handelt sich um ein Schlüsselwort, das angibt, dass die darauf folgenden Befehle ausgeführt werden, wenn die Bedingung „true“ ergibt.
- elif = (Abkürzung für else if) Dies ist ein Abschnitt, der es uns ermöglicht, zusätzliche zu überprüfende Bedingungen anzugeben.
- else = es ist ein Abschnitt, der Befehle enthält, die ausgeführt werden, wenn keine der Bedingungen wahr ist.
- fi = Es ist ein Schlüsselwort, das das Ende des bedingten Blocks markiert.
16) Wie liest man Zeilen aus einer Datei in einem Shell-Skript?
Zu Zeilen lesen Aus einer Datei innerhalb eines Shell-Skripts können wir verschiedene Methoden verwenden, aber ein gängiger Ansatz ist die Verwendung einer While-Schleife in Kombination mit dem Lesebefehl. So können wir es machen:
#!/bin/bash
file=/home/jayeshkumar/jayesh.txt
# Überprüfen Sie, ob die Datei vorhanden ist
if [ -e $file ]; Dann
while IFS= read -r line; Tun
echo Zeile gelesen: $line
# Fügen Sie hier Ihre Verarbeitungslogik hinzu
erledigt <$file
anders
echo Datei nicht gefunden: $file
Sei
Erläuterung:
- #!/bin/bash: Dies ist die Shebang-Zeile, die den Interpreter (/bin/bash) angibt, der zum Ausführen des Skripts verwendet werden soll.
- file=/home/jayeshkumar/jayesh.txt: Diese Zeile definiert die Variablendatei und weist den vollständigen Pfad zur Datei jayesh.txt im Verzeichnis /home/jayeshkumar zu. Ändern Sie diesen Pfad so, dass er mit dem tatsächlichen Pfad der Datei übereinstimmt, die Sie lesen möchten.
- if [ -e $file ]; then: Diese Zeile beginnt eine if-Anweisung. Es prüft, ob die durch die Variable $file angegebene Datei existiert. Das Flag -e prüft, ob eine Datei vorhanden ist.
- while IFS= read -r line; do: Diese Zeile initiiert eine While-Schleife, die Zeilen aus der Datei liest.
- IFS=: Das IFS (Internal Field Separator) wird auf einen leeren Wert gesetzt, um führende und nachfolgende Leerzeichen beizubehalten.
- read -r line: Dies liest die aktuelle Zeile aus der Datei und speichert sie in der Variablen line.
- echo Zeile gelesen: $line: Diese Zeile gibt den Inhalt der Zeile aus, die aus der Datei gelesen wurde. Die Variable $line enthält den Inhalt der aktuellen Zeile.
- # Fügen Sie hier Ihre Verarbeitungslogik hinzu: Dies ist ein Platzhalterkommentar, in dem Sie Ihre eigene Logik zur Verarbeitung jeder Zeile hinzufügen können. Beispielsweise können Sie die Zeile analysieren, Informationen extrahieren oder bestimmte Aktionen basierend auf dem Inhalt ausführen.
- done <$file: Dies markiert das Ende der while-Schleife. Das < $file leitet den Inhalt der Datei um, damit er von der Schleife gelesen werden kann.
- else: Wenn die Datei nicht existiert (die Bedingung in der if-Anweisung ist falsch), führt das Skript den Code unter dem else-Zweig aus.
- echo Datei nicht gefunden: $file: Diese Zeile gibt eine Fehlermeldung aus, die angibt, dass die angegebene Datei nicht gefunden wurde.
- fi: Diese Zeile markiert das Ende der if-Anweisung.

Datei lesen
Hier haben wir „“ verwendet pwd ` Befehl, um den Pfad des aktuellen Verzeichnisses abzurufen.
17) Schreiben Sie eine Funktion in ein Shell-Skript, die die Fakultät einer bestimmten Zahl berechnet.
Hier ist das Skript, dasBerechnen Sie die Fakultäteiner gegebenen Zahl.
#!/bin/bash
# Definieren Sie eine Funktion zur Berechnung der Fakultät
berechne_faktorial() {
num=$1
Tatsache=1
for ((i=1; i<=num; i++)); Tun
fact=$((fact * i))
Erledigt
echo $fact
}
# Fordern Sie den Benutzer auf, eine Nummer einzugeben
echo Geben Sie eine Zahl ein:
lese input_num
# Rufen Sie die Funktion „calcure_factorial“ mit der Eingabenummer auf
factial_result=$(calculate_factorial $input_num)
# Zeigen Sie das faktorielle Ergebnis an
echo Factorial von $input_num ist: $factorial_result
Erläuterung:
- Das Skript beginnt mit der Shebang-Zeile #!/bin/bash, um den Interpreter anzugeben.
- berechne_faktorial() ist als Funktion definiert. Es benötigt ein Argument, num, das die Zahl ist, für die die Fakultät berechnet werden muss.
- Innerhalb der Funktion wird fact auf 1 initialisiert. Diese Variable speichert das Fakultätsergebnis.
- Die for-Schleife iteriert von 1 bis zur angegebenen Zahl (num). In jeder Iteration multipliziert es den aktuellen Wert von fact mit dem Schleifenindex i.
- Nach Abschluss der Schleife enthält die Faktenvariable die berechnete Fakultät.
- Das Skript fordert den Benutzer mit „read“ zur Eingabe einer Zahl auf.
- Die Funktion „calcure_factorial“ wird mit der vom Benutzer angegebenen Zahl aufgerufen und das Ergebnis wird in der Variablen „factorial_result“ gespeichert.
- Abschließend zeigt das Skript das berechnete Fakultätsergebnis an.

Fakultät
18) Wie gehen Sie mit Signalen wie Strg+C in einem Shell-Skript um?
In einem Shell-Skript können Sie Signale wie Strg+C (auch bekannt als SIGINT) mit dem Trap-Befehl verarbeiten. Strg+C generiert ein SIGINT-Signal, wenn der Benutzer es drückt, um das laufende Skript oder Programm zu unterbrechen. Mithilfe des Trap-Befehls können Sie Aktionen festlegen, die ausgeführt werden sollen, wenn ein bestimmtes Signal empfangen wird. So gehen Sie mit Signalen wie Strg+C in einem Shell-Skript um:
#!/bin/bash
Aufräumen() {
echo Skript unterbrochen. Bereinigung wird durchgeführt…
# Fügen Sie hier Ihre Bereinigungsaktionen hinzu
Ausgang 1
}
# Richten Sie eine Falle ein, um die Bereinigungsfunktion aufzurufen, wenn Strg+C (SIGINT) empfangen wird
Fallenbereinigung SIGINT
# Rest Ihres Skripts
echo Laufen…
Schlaf 10
echo Fertig.
Der Umgang mit Signalen ist wichtig, um Skripte robust zu machen und sicherzustellen, dass sie unerwartete Unterbrechungen ordnungsgemäß verarbeiten. Sie können die Bereinigungsfunktion an Ihre spezifischen Anforderungen anpassen, z. B. Dateien schließen, Prozesse stoppen oder Informationen protokollieren, bevor das Skript beendet wird.
Erläuterung:
- #!/bin/bash: Diese Shebang-Zeile gibt den Interpreter an, der zum Ausführen des Skripts verwendet werden soll.
- cleanup() { … }: Dies definiert eine Funktion namens cleanup. In diese Funktion können Sie alle Aktionen einschließen, die ausgeführt werden müssen, wenn das Skript unterbrochen wird, z. B. das Schließen von Dateien, das Freigeben von Ressourcen oder das Durchführen anderer Bereinigungsaufgaben.
- trap cleanup SIGINT: Der trap-Befehl wird zum Einrichten eines Signalhandlers verwendet. In diesem Fall wird angegeben, dass die Bereinigungsfunktion ausgeführt werden soll, wenn das SIGINT-Signal (Strg+C) empfangen wird.
- echo Running…, sleep 10, echo Finished.: Dies sind nur Beispielbefehle, um die Ausführung eines Skripts zu simulieren.

19) Erstellen Sie ein Skript, das nach doppelten Zeilen in einer Textdatei sucht und diese entfernt.
Hier ist unser Linux-Skript, in dem wir doppelte Zeilen aus einer Textdatei entfernen.
#!/bin/bash
input_file=input.txt
Ausgabedatei=Ausgabe.txt
$input_file | sortieren uniq> $output_file
echo Doppelte Zeilen erfolgreich entfernt.
Erläuterung:
- Das Skript beginnt mit einem Shebang (#!/bin/bash), der angibt, dass das Skript mithilfe der Bash-Shell interpretiert werden soll.
- Die Variable input_file wird auf den Namen der Eingabedatei gesetzt, die doppelte Zeilen enthält (ändern Sie diesen in Ihren tatsächlichen Namen der Eingabedatei).
- Die Variable „output_file“ wird auf den Namen der Ausgabedatei gesetzt, aus der die Duplikate entfernt werden (ändern Sie diesen in den gewünschten Namen der Ausgabedatei).
- Das Skript verwendet den Sortierbefehl, um die Zeilen in der Eingabedatei zu sortieren. Durch das Sortieren der Zeilen wird sichergestellt, dass doppelte Zeilen gruppiert werden.
- Die sortierten Zeilen werden dann durch den Befehl uniq geleitet, der aufeinanderfolgende doppelte Zeilen entfernt. Die Ausgabe dieses Prozesses wird in die Ausgabedatei umgeleitet.
- Nachdem die Duplikate entfernt wurden, gibt das Skript eine Erfolgsmeldung aus.

Entfernen doppelter Zeilen
Hier verwenden wir „ Katze ` um den Text in der Textdatei anzuzeigen.
20) Schreiben Sie ein Skript, das ein sicheres Zufallspasswort generiert.
Hier ist unser Skript zum Generieren eines sicheren Zufallspassworts.
#!/bin/bash
# Funktion zum Generieren eines zufälligen Passworts
generiere Passwort() {
tr -dc 'A-Za-z0-9!@#$%^&*()_+{}[]'
}
# Rufen Sie die Funktion auf und speichern Sie das generierte Passwort
passwort=$(generate_password)
echo Generiertes Passwort: $password
Hinweis: Der Benutzer kann die Länge seines Passworts entsprechend ändern, indem er die Zahl „12“ ersetzt.
Erläuterung:
- Das Skript beginnt mit einem Shebang (#!/bin/bash), der angibt, dass es mit der Bash-Shell interpretiert werden soll.
- Die Funktion „generate_password“ ist so definiert, dass sie ein zufälliges Passwort generiert. So funktioniert das:
- tr -dc 'A-Za-z0-9!@#$%^&*()_+{}[]'
- falten -w 12 unterteilt die gefilterten Zufallsdaten in Zeilen mit einer Breite von jeweils 12 Zeichen.
- head -n 1 wählt die erste Zeile aus und gibt uns effektiv eine zufällige Folge von Zeichen der Länge 12.
- Der Variable „password“ wird das Ergebnis des Aufrufs der Funktion „generate_password“ zugewiesen.
- Abschließend wird das generierte Passwort mittels Echo angezeigt.

21) Schreiben Sie ein Shell-Skript, das die Gesamtgröße aller Dateien in einem Verzeichnis berechnet.
Hier ist ein Shell-Skript zur Berechnung der Gesamtgröße aller Dateien in einem Verzeichnis.
#!/bin/bash
Verzeichnis=/Pfad/zu/Ihrem/Verzeichnis
total_size=$(du -csh $directory | grep total | awk ‚{print $1}‘)
echo Gesamtgröße der Dateien in $directory: $total_size
Erläuterung:
- Das Skript beginnt mit dem Befehl #!/bin/bash, der darauf hinweist, dass es mithilfe der Bash-Shell interpretiert werden soll.
- Die Verzeichnisvariable wird auf den Pfad des Verzeichnisses gesetzt, für das Sie die Gesamtdateigröße berechnen möchten. Ersetzen Sie /path/to/your/directory durch den tatsächlichen Pfad.
- Der Befehl du wird verwendet, um die Dateispeichernutzung abzuschätzen. Die verwendeten Optionen sind:
- -c: Erzeuge eine Gesamtsumme.
- -s: Zeigt nur die Gesamtgröße des angegebenen Verzeichnisses an.
- -h: Druckgrößen in einem für Menschen lesbaren Format (z. B. KB, MB, GB).
- Die Ausgabe von du wird an grep total weitergeleitet, um die Zeile herauszufiltern, die die Gesamtgröße enthält.
- awk „{print $1}“ wird verwendet, um das erste Feld (Gesamtgröße) aus der Zeile zu extrahieren.
- Die berechnete Gesamtgröße wird in der Variablen total_size gespeichert.
- Abschließend zeigt das Skript mithilfe von Echo die Gesamtgröße an.

Gesamtgröße der Dateien
Hier haben wir „“ verwendet pwd ` Befehl, um den aktuellen Verzeichnispfad anzuzeigen.
22) Erklären Sie den Unterschied zwischen if- und elif-Anweisungen beim Shell-Scripting.
| Besonderheit | `if`Staiftement | `elif`-Erklärung |
| Zweck | Erklären Sie den Unterschied zwischen if- und elif-Anweisungen beim Shell-Scripting. | Stellt alternative Bedingungen bereit, um zu überprüfen, ob die anfängliche If-Bedingung falsch ist. |
| Verwendung | Wird für den Anfangszustand verwendet. | Wird nach der anfänglichen if-Bedingung verwendet, um zusätzliche Bedingungen zu überprüfen. |
| Anzahl der Blöcke | Kann nur einen if-Block haben. | Kann mehrere elif-Blöcke haben, aber nur einen else-Block (optional). |
| Ausführung | Führt den mit der if-Anweisung verknüpften Codeblock aus, wenn die Bedingung wahr ist. Wenn die Bedingung falsch ist, wird der else-Block (falls vorhanden) ausgeführt (optional). | Überprüft jede Elif-Bedingung der Reihe nach. Wenn eine elif-Bedingung wahr ist, wird der entsprechende Codeblock ausgeführt und das Skript verlässt den gesamten bedingten Block. Wenn keine der elif-Bedingungen wahr ist, wird der else-Block (falls vorhanden) ausgeführt. |
| Verschachtelte Strukturen | Kann in anderen if-, elif- oder else-Blöcken verschachtelt werden. | Kann nicht in einem anderen elif-Block verschachtelt werden, kann aber in einem if- oder else-Block verwendet werden. |
Lassen Sie es uns anhand eines Beispiels verstehen.
#!/bin/bash
Zahl=5
if [ $number -gt 10 ]; Dann
echo $number ist größer als 10
anders
echo $number ist nicht größer als 10
Sei
Echo ——–
if [ $number -gt 10 ]; Dann
echo $number ist größer als 10
elif [ $number -eq 10 ]; Dann
echo $number ist gleich 10
anders
echo $number ist kleiner als 10
Sei
Erläuterung:
In diesem Beispiel prüft der erste if-Block, ob die Zahl größer als 10 ist. Wenn nicht, gibt er eine Meldung aus, die angibt, dass die Zahl nicht größer als 10 ist. Der zweite Block mit elif-Anweisungen prüft nacheinander mehrere Bedingungen, bis eine davon wahr ist. Da in diesem Fall der Wert von number 5 ist, lautet die Ausgabe:

if_elif Unterschied
23) Wie nutzt man eine While-Schleife, um Befehle wiederholt auszuführen?
Bei der Shell-Skripterstellung wird eine While-Schleife verwendet, um eine Reihe von Befehlen wiederholt auszuführen, solange eine bestimmte Bedingung erfüllt ist. Die Schleife führt die Befehle so lange aus, bis die Bedingung falsch wird.
Hier ist die grundlegende Syntax einer While-Schleife:
while [ Bedingung ]; Tun
# Auszuführende Befehle
Erledigt
Erläuterung:
- Die „while“-Schleife beginnt mit dem Schlüsselwort „while“, gefolgt von einer in eckigen Klammern eingeschlossenen Bedingung „[ ]“.
- Der Schleifenkörper, der die auszuführenden Befehle enthält, ist in die Schlüsselwörter „do“ und „done“ eingeschlossen.
- Die Schleife prüft zunächst die Bedingung. Wenn die Bedingung wahr ist, werden die Befehle im Schleifenkörper ausgeführt. Nachdem der Schleifenkörper ausgeführt wurde, wird die Bedingung erneut überprüft und der Vorgang wiederholt, bis die Bedingung falsch wird.
Beispiel: Wenn wir Zahlen von 1 bis 5 drucken möchten
#!/bin/bash
Zähler=1
while [ $counter -le 5 ]; Tun
Echo-Nummer: $counter
counter=$((counter + 1))
Erledigt
Erläuterung:
- Die Zählervariable wird auf 1 gesetzt.
- Die while-Schleife prüft, ob der Wert von counter kleiner oder gleich 5 ist. Solange diese Bedingung erfüllt ist, wird die Schleife weiter ausgeführt.
- Innerhalb der Schleife wird der aktuelle Wert des Zählers mithilfe von Echo ausgegeben.
- Der Zähler wird mit dem Ausdruck $((Zähler + 1)) um 1 erhöht.

while-Schleife
24) Erstellen Sie ein Shell-Skript, das alle leeren Dateien in einem Verzeichnis findet und auflistet.
Shell-Skript, mit dem Sie mithilfe der Befehle „find“ und „stat“ alle leeren Dateien in einem Verzeichnis suchen und auflisten können:
#!/bin/bash
Verzeichnis=$1″
if [ -z $directory ]; Dann
Echo-Nutzung: $0
Ausgang 1
Sei
Wenn [ ! -d $Verzeichnis ]; Dann
echo Fehler: „$directory“ ist kein gültiges Verzeichnis.
Ausgang 1
Sei
echo Leere Dateien im $directory:
finde $directory -type f -empty
Erläuterung:
- ` #!/bin/bash „: Dies wird als Shebang bezeichnet und weist das Betriebssystem an, die Bash-Shell zum Interpretieren und Ausführen des Skripts zu verwenden.
- ` Verzeichnis=$1″ `: Diese Zeile weist der Variablen ` das erste Befehlszeilenargument (bezeichnet mit $1) zu Verzeichnis `.
- ` if [ -z $directory ]; Dann `: Diese Zeile startet eine if-Anweisung, die prüft, ob das ` Verzeichnis ` Variable ist leer (-z testet auf eine leere Zeichenfolge).
- ` Echo-Nutzung: $0 `: Wenn das Verzeichnis leer ist, gibt diese Zeile eine Nutzungsmeldung aus, wobei ` 0 $ ` steht für den Namen des Skripts.
- ` Ausgang 1 `: Diese Zeile beendet das Skript mit dem Exit-Code ` 1 `, was auf einen Fehler hinweist.
- ` Sei `: Diese Zeile markiert das Ende des ` Wenn ` Aussage.
- ` Wenn [ ! -d $Verzeichnis ]; Dann `: Dies startet eine weitere if-Anweisung, um zu prüfen, ob das angegebene Verzeichnis existiert (` -D ` testet für ein Verzeichnis).
- ` echo Fehler: „$directory“ ist kein gültiges Verzeichnis. `: Wenn das angegebene Verzeichnis nicht existiert, gibt diese Zeile eine Fehlermeldung aus.
- ` Ausgang 1 `: Beendet das Skript mit dem Exit-Code ` 1 `.
- ` Sei `: Markiert das Ende des zweiten ` wenn` Stellungnahme.
- ` echo Leere Dateien im $directory: `: Wenn bisher alles gültig ist, gibt diese Zeile eine Meldung aus, die angibt, dass das Skript leere Dateien im angegebenen Verzeichnis auflistet.
- ` finde $directory -type f -empty `: Diese Zeile verwendet das ` finden ` Befehl zum Suchen nach leeren Dateien (` -leer `) vom Typ reguläre Dateien (` -Typ f `) im angegebenen Verzeichnis. Anschließend werden diese leeren Dateien aufgelistet.

Leere Dateien finden
Notiz : Wir müssen beim Ausführen des Skripts ein Verzeichnis als Argument angeben. Hier haben wir den Pfad des aktuellen Verzeichnisses home/jayeshkumar/ verwendet
25) Was ist der Zweck des Lesebefehls beim Shell-Scripting?
Mit dem Lesebefehl beim Shell-Scripting fragt das Skript Sie nach Informationen. Es ist, als würde Ihnen ein Computer eine Frage stellen und auf Ihre Antwort warten. Dies ist nützlich für Skripte, bei denen Sie etwas eingeben müssen oder wenn das Skript mit Informationen aus Dateien arbeiten muss. Der Lesebefehl hilft dem Skript, anzuhalten und auf Ihre Eingabe zu warten. Anschließend kann es diese Informationen verwenden, um weitere Aufgaben im Skript auszuführen.
Syntax des Lesebefehls:
read variable_name>
Beispiel : Wenn wir den Namen als Eingabe vom Benutzer verwenden möchten, um ihn zu drucken.
#!/bin/bash
echo Bitte geben Sie Ihren Namen ein:
Namen lesen
echo Hallo, $name!

lies nam
Zusammenfassend lässt sich sagen, dass der Lesebefehl verwendet wird, um Benutzereingaben oder Daten aus Dateien in Shell-Skripten zu erfassen, wodurch die Skripte interaktiver und vielseitiger werden.
26) Schreiben Sie ein Shell-Skript, das alle Dateinamen in einem Verzeichnis in Kleinbuchstaben umwandelt.
Hier ist ein Shell-Skript, das alle Dateinamen in einem Verzeichnis in Kleinbuchstaben umwandelt.
#!/bin/bash
Verzeichnis=$1″
if [ -z $directory ]; Dann
Echo-Nutzung: $0
Ausgang 1
Sei
Wenn [ ! -d $Verzeichnis ]; Dann
echo Fehler: „$directory“ ist kein gültiges Verzeichnis.
Ausgang 1
Sei
cd $verzeichnis || Ausgang 1
für Datei in *; Tun
if [ -f $file ]; Dann
newname=$(echo $file | tr ‚A-Z‘ ‚a-z‘)
[ $file != $newname ] && mv $file $newname
Sei
Erledigt
Erläuterung:
- #!/bin/bash : Dies ist der Knaller, der angibt, dass das Skript mithilfe der Bash-Shell interpretiert werden soll.
- Verzeichnis=$1″ : Diese Zeile weist das erste Befehlszeilenargument dem Variablenverzeichnis zu.
- if [ -z $directory ]; Dann : Diese Zeile prüft, ob die Verzeichnisvariable leer ist (kein Argument angegeben, wenn das Skript ausgeführt wird).
- Echo-Nutzung: $0 : Wenn das Verzeichnis leer ist, gibt diese Zeile eine Nutzungsmeldung mit dem Namen des Skripts ($0) aus.
- Ausgang 1 : Diese Zeile beendet das Skript mit dem Exit-Code 1, was darauf hinweist, dass ein Fehler aufgetreten ist.
- F i: Dies markiert das Ende der ersten if-Anweisung.
- Wenn [ ! -d $Verzeichnis ]; Dann : Diese Zeile prüft, ob das angegebene Verzeichnis nicht existiert (-d testet ein Verzeichnis).
- echo Fehler: „$directory“ ist kein gültiges Verzeichnis. : Wenn das angegebene Verzeichnis nicht existiert, gibt diese Zeile eine Fehlermeldung aus.
- Ausgang 1 : Beendet das Skript mit dem Exit-Code 1.
- Sei : Markiert das Ende der zweiten if-Anweisung.
- cd $verzeichnis || Ausgang 1 : Ändert das aktuelle Arbeitsverzeichnis in das angegebene Verzeichnis. Wenn der Verzeichniswechsel fehlschlägt (z. B. Verzeichnis nicht vorhanden), wird das Skript mit einem Fehlercode beendet.
- für Datei in *; Tun: ICH für Datei in *; Tun: löst eine Schleife aus, die alle Elemente im aktuellen Verzeichnis durchläuft (* entspricht allen Dateinamen).
- if [ -f $file ]; Dann : Überprüft, ob das aktuelle Schleifeniterationselement eine reguläre Datei ist (-f testet auf eine reguläre Datei).
- newname=$(echo $file | tr ‚A-Z‘ ‚a-z‘) : Wandelt den aktuellen Dateinamen ($file) mit dem Befehl tr in Kleinbuchstaben um und speichert das Ergebnis in der Variablen newname.
- [ $file != $newname ] && mv $file $newname : Vergleicht den ursprünglichen Dateinamen mit dem neuen Dateinamen in Kleinbuchstaben. Wenn sie unterschiedlich sind, wird die Datei mit dem Befehl mv umbenannt.
- Sei : Markiert das Ende der inneren if-Anweisung.
- Erledigt : Markiert das Ende der Schleife.

Notiz : Wir müssen beim Ausführen des Skripts ein Verzeichnis als Argument angeben. Hier haben wir den Pfad des aktuellen Verzeichnisses home/jayeshkumar/test verwendet
27) Wie können Sie arithmetische Operationen innerhalb eines Shell-Skripts verwenden?
Arithmetische Operationen können innerhalb eines Shell-Skripts mithilfe verschiedener integrierter Methoden ausgeführt werden. Die Shell bietet Mechanismen für einfache arithmetische Berechnungen mithilfe der arithmetischen Erweiterung wie:
- Arithmetische Erweiterung ($((…)))
- Verwenden des expr-Befehls
- Verwenden des let-Befehls
Hier ist unser Shell-Skript, das alle drei Methoden für arithmetische Operationen erklärt.
#!/bin/bash
num1=10
num2=5
#Arithmetische Erweiterung ($((…)))
Ergebnis=$((num1 + num2))
echo Summe: $result
#Verwenden des expr-Befehls
sum=$(expr $num1 + $num2)
echo Summe: $sum
#Verwenden des let-Befehls
sei sum = num1 + num2
echo Summe: $sum
Erläuterung:
- `#!/bin/bash` : Dies ist der Knaller, der angibt, dass das Skript mithilfe der Bash-Shell interpretiert werden soll.
- `num1=10` und ` num2=5` : Diese Zeilen weisen den Variablen ` die Werte 10 und 5 zu num1 ` und ` num2 ` bzw.
- `#Arithmetische Erweiterung ($((…)))` : Dies ist ein Kommentar, der den Anfang des Abschnitts angibt, der die arithmetische Erweiterung demonstriert.
- `result=$((num1 + num2))` : Diese Zeile verwendet eine arithmetische Erweiterung, um die Summe von ` zu berechnen num1 ` und ` num2 ` und speichert das Ergebnis im ` Ergebnis ` variabel.
- „echo Summe: $result“. : Diese Zeile gibt die berechnete Summe unter Verwendung des im ` gespeicherten Werts aus Ergebnis ` variabel.
- `#Verwenden des expr-Befehls` : Dies ist ein Kommentar, der den Anfang des Abschnitts angibt, der die Verwendung des „`“ demonstriert Ausdruck ` Befehl für arithmetische Operationen.
- `sum=$(expr $num1 + $num2)` : Diese Zeile verwendet das ` Ausdruck ` Befehl zur Berechnung der Summe von ` num1 ` und ` num2 ` und speichert das Ergebnis im ` Summe ` variabel. Beachten Sie, dass das ` Ausdruck Der Befehl ` erfordert Leerzeichen um die Operatoren.
- „Echo-Summe: $sum“. : Diese Zeile gibt die berechnete Summe unter Verwendung des im ` gespeicherten Werts aus Summe ` variabel.
- `#Verwenden des let-Befehls` : Dies ist ein Kommentar, der den Anfang des Abschnitts angibt, der die Verwendung des „`“ demonstriert lassen ` Befehl für arithmetische Operationen.
- `Lass Summe = num1 + num2″` : Diese Zeile verwendet das ` lassen ` Befehl zur Berechnung der Summe von ` num1 ` und ` num2 ` und weist das Ergebnis dem ` zu Summe ` variabel. Das ` lassen Für den Befehl ` sind keine Leerzeichen um die Operatoren erforderlich.
- „Echo-Summe: $sum“. : Diese Zeile gibt die berechnete Summe unter Verwendung des im ` gespeicherten Werts aus Summe ` variabel.

Arithmetik
28) Erstellen Sie ein Skript, das prüft, ob ein Netzwerkhost erreichbar ist.
Hier ist ein einfaches Shell-Skript, das mithilfe des Ping-Befehls prüft, ob ein Netzwerkhost erreichbar ist:
#!/bin/bash
host=$1″
if [ -z $host ]; Dann
Echo-Nutzung: $0
Ausgang 1
Sei
ping -c 4 $host
wenn [ $? -eq 0 ]; Dann
echo $host ist erreichbar.
anders
echo $host ist nicht erreichbar.
Sei
Erläuterung:
- Es nimmt einen Hostnamen oder eine IP-Adresse als Argument und prüft, ob das Argument angegeben wird.
- Wenn kein Argument angegeben wird, wird eine Nutzungsmeldung angezeigt und der Vorgang beendet.
- Es verwendet den Ping-Befehl mit der Option -c 4, um vier ICMP-Echo-Anfragen an den angegebenen Host zu senden.
- Nachdem der Ping-Befehl ausgeführt wurde, prüft er den Exit-Status ($?). Wenn der Exit-Status 0 ist, bedeutet dies, dass der Host erreichbar ist und das Skript eine Erfolgsmeldung ausgibt. Andernfalls wird eine Fehlermeldung ausgegeben.

Notiz : Wir müssen beim Ausführen des Skripts einen Hostnamen als Argument angeben. Hier haben wir google.com verwendet
29) Schreiben Sie ein Shell-Skript, um das größte Element in einem Array zu finden:
Hier ist ein Shell-Skript, um das größte Element in einem Array zu finden.
#!/bin/bash
# Deklarieren Sie ein Array
array=(3 56 24 89 67)
# Initialisieren Sie eine Variable, um den Maximalwert zu speichern, beginnend mit dem ersten Element
max=${array[0]}
# Durch das Array iterieren
für num in ${array[@]}; Tun
# Vergleichen Sie jedes Element mit dem aktuellen Maximum
if ((num> max)); Dann
max=$num
Sei
Erledigt
# Drucken Sie den Maximalwert aus
echo Das maximale Element im Array ist: $max
Erläuterung:
- ` #!/bin/bash `: Die Shebang-Zeile gibt an, dass das Skript mit der Bash-Shell interpretiert werden soll.
- ` array=(3 56 24 89 67) `: Das Array wird deklariert und mit Werten initialisiert.
- ` max=${array[0]} `: `max` wird mit dem ersten Element des Arrays initialisiert.
- ` für num in ${array[@]}; Tun „: Eine „for“-Schleife wird verwendet, um die Elemente des Arrays zu durchlaufen.
- ` if ((num> max)); Dann „: Eine „if“-Anweisung prüft, ob das aktuelle Element „num“ größer als das aktuelle Maximum „max“ ist.
- ` max=$num`: If`num ` ist größer als `max`, `max` wird mit dem Wert von num aktualisiert.
- ` Erledigt `: Die `for`-Schleife ist geschlossen.
- ` echo Das maximale Element im Array ist: $max `: Abschließend gibt das Skript den im Array gefundenen Maximalwert aus.

größte Zahl
30) Schreiben Sie ein Skript, um die Summe der Elemente in einem Array zu berechnen.
#!/bin/bash
# Deklarieren Sie ein Array
array=(1 65 22 19 94)
# Initialisieren Sie eine Variable, um die Summe zu speichern
Summe=0
# Durchlaufen Sie das Array und fügen Sie jedes Element zur Summe hinzu
für num in ${array[@]}; Tun
am=$((am + am))
Erledigt
# Drucken Sie die Summe aus
echo Die Summe der Elemente im Array ist: $sum
Erläuterung:
` #!/bin/bash `: Die Shebang-Zeile gibt an, dass das Skript mit der Bash-Shell interpretiert werden soll.
` array=(1 65 22 19 94) `: Das Array wird deklariert und mit Werten initialisiert.
` Summe=0 `:` Summe ` wird auf Null initialisiert, um die Summe der Elemente zu speichern.
` für num in ${array[@]}; Tun `: A` für Die Schleife wird verwendet, um die Elemente des Arrays zu durchlaufen.
` am=$((am + am)) `: Innerhalb der Schleife jedes Element ` Auf eins ` wird dem ` hinzugefügt Summe ` variabel.
` Erledigt `: Das ` für ` Schleife ist geschlossen.
„echo Die Summe der Elemente im Array ist: $sum“: Schließlich gibt das Skript die Summe aller Elemente im Array aus.

Summe der Elemente
Erfahren Sie mehr über Shell-Skripte
Abschluss
Wir alle wissen, dass Shell-Skripte sehr nützlich sind, um die Arbeitsproduktivität zu steigern und auch Zeit zu sparen. In diesem Artikel haben wir es also behandelt 30 sehr nützliche und am meisten betrügerische Beispiele für Shell-Skripte . Wir hoffen, dass diese vollständige Anleitung zum Beispiel für Shell-Skripte Ihnen hilft, alles über die Shell-Skripte zu verstehen.
Ausgang 1
Sei
Wenn [ ! -d $Verzeichnis ]; Dann
echo Fehler: „$directory“ ist kein gültiges Verzeichnis.
Ausgang 1
Sei
echo Leere Dateien im $directory:
finde $directory -type f -empty
Erläuterung:
- ` #!/bin/bash „: Dies wird als Shebang bezeichnet und weist das Betriebssystem an, die Bash-Shell zum Interpretieren und Ausführen des Skripts zu verwenden.
- ` Verzeichnis=″ `: Diese Zeile weist der Variablen ` das erste Befehlszeilenargument (bezeichnet mit ) zu Verzeichnis `.
- ` if [ -z $directory ]; Dann `: Diese Zeile startet eine if-Anweisung, die prüft, ob das ` Verzeichnis ` Variable ist leer (-z testet auf eine leere Zeichenfolge).
- ` Echo-Nutzung:
Bei allen Linux-Distributionen ist das Shell-Skript wie ein Zauberstab, der den Prozess automatisiert, Benutzern Zeit spart und die Produktivität steigert. Dieses Tutorial zur SOLL-Skripterstellung stellt Ihnen mehr als 25 SOLL-Skripting-Beispiele vor.
Aber bevor wir zum Thema übergehen Shell-Scripting Beispiele: Lassen Sie uns Shell-Skripte und die tatsächlichen Anwendungsfälle von Shell-Skripten verstehen.
Was ist Shell-Skript?
Nun, die Schale ist eine CLI ( Befehlszeileninterpreter ), das in einem Textfenster ausgeführt wird, in dem Benutzer Shell-Befehle verwalten und ausführen können. Andererseits wird der Prozess des Schreibens einer Reihe von Befehlen, die auf einem Linux-System ausgeführt werden sollen. Eine Datei, die solche Anweisungen enthält, wird als Bash-Skript bezeichnet.
Verwendung von Shell-Skripten
Im Folgenden sind einige häufige Verwendungszwecke von Shell Script aufgeführt:
- Aufgabenautomatisierung – Es kann verwendet werden, um sich wiederholende Aufgaben wie regelmäßige Backups und Softwareinstallationsaufgaben zu automatisieren.
- Anpassung - Man kann Shell-Skripte verwenden, um seine Befehlszeilenumgebung zu entwerfen und seine Aufgabe je nach Bedarf einfach auszuführen.
- Dokumentenverwaltung - Die Shell-Skripte können auch zum Verwalten und Bearbeiten von Dateien und Verzeichnissen verwendet werden, beispielsweise zum Verschieben, Kopieren, Umbenennen oder Löschen von Dateien.
Beispiele für Shell-Skripte unter Linux
1) Was bedeutet das Shebang (#!) am Anfang eines Shell-Skripts?
Der Mist (#!) am Anfang eines Skripts gibt den Interpreter an, der zum Ausführen des Skripts verwendet werden soll. Es teilt dem System mit, welche Shell oder welcher Interpreter die Befehle des Skripts interpretieren soll.
Zum Beispiel: Angenommen, wir haben ein Skript mit dem Namen myscript.sh geschrieben in der Bash-Shell:

Mist
In diesem Beispiel:
- Das #!/bin/bash am Anfang des Skripts gibt an, dass das Skript mithilfe der Bash-Shell interpretiert werden soll.
- Die Echo-Befehle werden zum Drucken von Nachrichten an das Terminal verwendet.
2) Wie führt man ein Shell-Skript über die Befehlszeile aus?
Um ein Shell-Skript über die Befehlszeile auszuführen, müssen wir die folgenden Schritte ausführen:
- Stellen Sie sicher, dass die Skriptdatei über ausführbare Berechtigungen verfügt chmod-Befehl :
chmod +x myscript.sh>
- Führen Sie das Skript unter Verwendung seines Dateinamens aus:
./myscript.sh>
Hier muss ersetzt werden myscrtipt.sh mit Ihrem Skriptnamen.
3) Schreiben Sie ein Shell-Skript, das techcodeview.com auf dem Terminal ausgibt.
Erstellen Sie einen Skriptnamen „myscript.sh“ (wir verwenden „ Weil ` Editor, Sie können einen beliebigen Editor auswählen)
vim myscript.sh>
#!/bin/bash
# Dieses Skript druckt techcodeview.com auf dem Terminal
echo techcodeview.com

Namen drucken
Wir machen unser Skript mit „chmod +x“ ausführbar, führen es dann mit „./myscipt.sh“ aus und erhalten die gewünschte Ausgabe techcodeview.com.
4) Erklären Sie den Zweck des Echo-Befehls beim Shell-Scripting.
Der Echo-Befehl dient der Anzeige von Texten oder Variablen auf dem Terminal. Es wird häufig zum Drucken von Nachrichten, Variablenwerten und zum Generieren von Programmausgaben verwendet.

Echo-Befehl
In diesem Beispiel haben wir „echo“ direkt auf dem Terminal ausgeführt, da es innerhalb des Shell-Skripts genauso funktioniert.
5) Wie kann man einer Variablen in einem Shell-Skript einen Wert zuweisen?
Variablen werden Werte mit dem Zuweisungsoperator = zugewiesen.
Zum Beispiel:
#!/bin/bash
# Einer Variablen einen Wert zuweisen
Name=Jayesh
Alter=21
echo $name $age
Erläuterung:
- Der Namensvariablen wird der Wert Jayesh zugewiesen.
- Der Altersvariable wird der Wert 21 zugewiesen.
- echo wird zum Drucken verwendet und `$name` `$age` wird verwendet, um den in den Variablen gespeicherten Wert aufzurufen.

6) Schreiben Sie ein Shell-Skript, das den Namen eines Benutzers als Eingabe verwendet und ihn begrüßt.
Erstellen Sie einen Skriptnamen „example.sh“.
#!/bin/bash
# Fragen Sie den Benutzer nach seinem Namen
echo Wie heißt du?
Namen lesen
# Begrüßen Sie den Benutzer
echo Hallo, $name! Freut mich, Sie kennenzulernen.
Erläuterung:
- #!/bin/bash: Das ist die Shebang-Zeile. Es weist das System an, den Bash-Interpreter zum Ausführen des Skripts zu verwenden.
- # Fragen Sie den Benutzer nach seinem Namen: Dies ist ein Kommentar. Es bietet Kontext zum kommenden Code. Kommentare werden vom Interpreter ignoriert.
- echo Wie heißt du?: Der echo-Befehl wird verwendet, um den Text in doppelten Anführungszeichen auf dem Terminal anzuzeigen.
- Lesename: Der Lesebefehl wartet auf die Eingabe von Text durch den Benutzer und speichert ihn im Variablennamen.
- echo Hallo, $name! Freut mich, Sie kennenzulernen.: Diese Zeile verwendet den echo-Befehl, um eine Begrüßungsnachricht zu drucken, die den Wert der Namensvariablen enthält, der aus der Benutzereingabe erfasst wurde.

7) Wie fügt man einem Shell-Skript Kommentare hinzu?
Kommentare im Shell-Scripting werden verwendet, um Erklärungen oder Kontext zum Code bereitzustellen. Sie werden vom Interpreter ignoriert und sind nur für Menschen gedacht, die das Skript lesen. Mit dem #-Symbol können Sie Kommentare hinzufügen.
#!/bin/bash
# Dies ist ein Kommentar, der den Zweck des Skripts erläutert
echo gfg
8) Erstellen Sie ein Shell-Skript, das prüft, ob eine Datei im aktuellen Verzeichnis vorhanden ist.
Hier ist ein Skript, das prüft, ob eine Datei namens example.txt im aktuellen Verzeichnis vorhanden ist:
#!/bin/bash
file=example.txt
# Überprüfen Sie, ob die Datei vorhanden ist
if [ -e $file ]; Dann
echo Datei existiert: $file
anders
echo Datei nicht gefunden: $file
Sei
Erläuterung:
- #!/bin/bash: Dies ist die Shebang-Zeile, die den Interpreter (/bin/bash) angibt, der zum Ausführen des Skripts verwendet werden soll.
- file=example.txt: Diese Zeile definiert die Variablendatei und weist ihr den Wert example.txt zu. Sie können dies durch den Namen der Datei ersetzen, nach der Sie suchen möchten.
- if [ -e $file ]; then: Diese Zeile beginnt eine if-Anweisung. Die Bedingung [ -e $file ] prüft, ob die durch den Wert der Dateivariablen angegebene Datei existiert. Das Flag -e wird verwendet, um zu prüfen, ob eine Datei vorhanden ist.
- echo Datei existiert: $datei: Wenn die Bedingung wahr ist (d. h. die Datei existiert), gibt diese Zeile eine Meldung aus, die angibt, dass die Datei existiert, zusammen mit dem Namen der Datei.
- else: Wenn die Bedingung falsch ist (d. h. die Datei existiert nicht), führt das Skript den Code unter dem else-Zweig aus.
- echo Datei nicht gefunden: $datei: Diese Zeile gibt eine Fehlermeldung aus, die angibt, dass die angegebene Datei nicht gefunden wurde, zusammen mit dem Namen der Datei.
- fi: Diese Zeile markiert das Ende der if-Anweisung.

Datei wird gefunden
9) Was ist der Unterschied zwischen einfachen Anführungszeichen (‘) und doppelten Anführungszeichen () beim Shell-Scripting?
Einfache Anführungszeichen (‘) und doppelte Anführungszeichen () werden zum Einschließen von Zeichenfolgen in Shell-Skripten verwendet, haben jedoch unterschiedliche Verhaltensweisen:
- Einfache Anführungszeichen: Alles zwischen einfachen Anführungszeichen wird als Literalzeichenfolge behandelt. Variablennamen und die meisten Sonderzeichen werden nicht erweitert.
- Doppelte Anführungszeichen: Variablen und bestimmte Sonderzeichen in doppelten Anführungszeichen werden erweitert. Der Inhalt unterliegt der Variablenersetzung und der Befehlsersetzung.
#!/bin/bash
abcd=Hallo
echo ‚$abcd‘ # Ausgabe: $abcd
echo $abcd # Ausgabe: Hallo
10) Wie können Sie Befehlszeilenargumente in einem Shell-Skript verwenden?
Kommandozeilenargumente sind Werte, die einem Skript bei seiner Ausführung bereitgestellt werden. Auf sie kann innerhalb des Skripts über spezielle Variablen wie $1, $2 usw. zugegriffen werden, wobei $1 das erste Argument, $2 das zweite Argument usw. darstellt.
Zum Beispiel: Wenn unser Skriptname in „example.sh“ steht
#!/bin/bash
echo Skriptname: $0
echo Erstes Argument: $1
echo Zweites Argument: $2
Wenn wir das Skript mit „.example.sh hello_1 hello_2“ ausführen, wird Folgendes ausgegeben:

CLI-Argumente
11) Wie verwenden Sie die for-Schleife, um eine Liste von Werten zu durchlaufen?
Erstellen Sie einen Skriptnamen „example.sh“.
#!/bin/bash
Früchte = (Apfel, Banane, Kirsche, Dattel)
für Obst in ${fruits[@]}; Tun
echo Aktuelle Frucht: $fruit
Erledigt
Erläuterung:
Die Zeile „fruits=“ erstellt ein Array mit dem Namen „Früchte“ mit vier Elementen: Apfel, Banane, Kirsche und Dattel.
- für Obst in ${fruits[@]}; do: Diese Zeile startet eine for-Schleife. Hier ist, was jeder Teil bedeutet:
- für Obst: Dies deklariert eine Schleifenvariable namens Obst. In jeder Iteration der Schleife speichert Fruit den Wert des aktuellen Elements aus dem Fruit-Array.
- ${fruits[@]}: Dies ist eine Array-Erweiterung, die alle Elemente aus dem Fruit-Array übernimmt. Die ${…}-Syntax stellt sicher, dass jedes Element als separates Element behandelt wird.
- do: Dieses Schlüsselwort markiert den Anfang des Schleifenkörpers.
- echo Aktuelle Frucht: $fruit: Innerhalb der Schleife verwendet diese Zeile den Echo-Befehl, um den aktuellen Wert der Schleifenvariablen Frucht anzuzeigen. Für jede Frucht im Array wird eine Meldung wie Aktuelle Frucht: Apfel ausgegeben.
- done: Dieses Schlüsselwort markiert das Ende des Schleifenkörpers. Es teilt dem Skript mit, dass die Schleife beendet ist.

for-Schleife
12) Schreiben Sie ein Shell-Skript, das mithilfe einer Schleife die Summe der ganzen Zahlen von 1 bis N berechnet.
Erstellen Sie einen Skriptnamen „example.sh“.
#!/bin/bash
echo Geben Sie eine Zahl (N) ein:
lies N
Summe=0
for (( i=1; i<=$N; i++ )); Tun
sum=$((sum + i))
Erledigt
echo Die Summe der ganzen Zahlen von 1 bis $N ist: $sum
Erläuterung:
Das Skript fordert Sie zunächst dazu auf, mithilfe von „read“ eine Zahl (N) einzugeben. Diese Zahl bestimmt, wie oft die Schleife ausgeführt wird.
- Die Variablensumme wird auf 0 initialisiert. Diese Variable verfolgt die Summe der Ganzzahlen.
- Die for-Schleife beginnt mit for (( i=1; i<=$N; i++ )). Diese Schleifenstruktur wird verwendet, um eine Reihe von Aktionen eine bestimmte Anzahl von Malen zu wiederholen, in diesem Fall von 1 bis zum Wert N.
- Innerhalb der Schleife passieren folgende Dinge:
- i=1 setzt die Schleifenvariable i zu Beginn jeder Iteration auf 1.
- Die Schleifenbedingung i<=$N prüft, ob i immer noch kleiner oder gleich der angegebenen Zahl N ist.
- Wenn die Bedingung wahr ist, wird der Schleifenkörper ausgeführt.
- sum=$((sum + i)) berechnet den neuen Wert von sum, indem der aktuelle Wert von i dazu addiert wird. Dadurch werden die ganzen Zahlen von 1 bis zum aktuellen i-Wert addiert.
- Nach jeder Iteration erhöht i++ den Wert von i um 1.
- Die Schleife läuft weiter, bis die Bedingung i<=$N falsch wird (wenn i größer als N wird).
- Sobald die Schleife beendet ist, zeigt das Skript die Summe der ganzen Zahlen von 1 bis zur eingegebenen Zahl N an.

13) Erstellen Sie ein Skript, das nach einem bestimmten Wort in einer Datei sucht und dessen Vorkommen zählt.
Erstellen Sie einen Skriptnamen „word_count.sh“.
#!/bin/bash
echo Geben Sie das Wort ein, nach dem gesucht werden soll:
Zielwort lesen
echo Geben Sie den Dateinamen ein:
Dateinamen lesen
count=$(grep -o -w $target_word $filename | wc -l)
echo Das Wort „$target_word“ kommt $count mal in „$filename“ vor.
Erläuterung:
- echo Geben Sie das zu suchende Wort ein:: In dieser Zeile wird eine Meldung angezeigt, in der der Benutzer aufgefordert wird, ein Wort einzugeben, nach dem er in einer Datei suchen möchte.
- read target_word: Diese Zeile liest die vom Benutzer bereitgestellten Eingaben und speichert sie in einer Variablen namens target_word.
- echo Geben Sie den Dateinamen ein:: In dieser Zeile wird eine Meldung angezeigt, in der der Benutzer aufgefordert wird, den Namen der Datei einzugeben, in der er suchen möchte.
- Dateinamen lesen: Diese Zeile liest die vom Benutzer bereitgestellten Eingaben und speichert sie in einer Variablen namens Dateiname.
- count=$(grep -o -w $target_word $filename | wc -l): Diese Zeile erledigt die Hauptarbeit des Skripts. Lassen Sie es uns weiter aufschlüsseln:
- grep -o -w $target_word $filename: Dieser Teil des Befehls sucht nach Vorkommen des target_word im angegebenen Dateinamen. Die Optionen -o und -w stellen sicher, dass nur Ganzwortübereinstimmungen gezählt werden.
- |: Dies ist eine Pipe, die die Ausgabe des vorherigen Befehls übernimmt und als Eingabe an den nächsten Befehl sendet.
- wc -l: Dieser Teil des Befehls verwendet den Befehl wc, um die Anzahl der Zeilen in der Eingabe zu zählen. Die Option -l zählt gezielt die Zeilen.
- Der gesamte Befehl berechnet die Anzahl der Vorkommen des Zielworts in der Datei und weist diese Anzahl der Variablen coun zu

14) Erklären Sie die Unterschiede zwischen Standardausgabe (stdout) und Standardfehler (stderr).
Der Hauptunterschied zwischen Standardausgabe (stdout) und Standardfehler (stderr) ist wie folgt:
- Standardausgabe (stdout): Dies ist der Standardausgabestream, in den die reguläre Ausgabe eines Befehls geht. Es wird standardmäßig auf dem Terminal angezeigt. Sie können es mit> in eine Datei umleiten.
- Standardfehler (stderr): Dies ist der Ausgabestream für Fehlermeldungen und Warnungen. Es wird standardmäßig auch auf dem Terminal angezeigt. Sie können es mit 2> in eine Datei umleiten.
15) Erklären Sie das Konzept bedingter Anweisungen im Shell-Scripting.
Bedingte Anweisungen im Shell-Scripting ermöglichen es uns, Entscheidungen zu treffen und den Ablauf unseres Skripts auf der Grundlage bestimmter Bedingungen zu steuern. Sie ermöglichen unserem Skript, unterschiedliche Befehlssätze auszuführen, je nachdem, ob eine bestimmte Bedingung wahr oder falsch ist. Die primären bedingten Anweisungen beim Shell-Scripting sind die if-Anweisung, die elif-Anweisung (optional) und die else-Anweisung (optional).
Hier ist die Grundstruktur einer bedingten Anweisung im Shell-Scripting:
if [ Bedingung ]; Dann
# Befehle, die ausgeführt werden sollen, wenn die Bedingung wahr ist
elif [ another_condition ]; Dann
# Befehle, die ausgeführt werden sollen, wenn another_condition wahr ist (optional)
anders
# Befehle, die ausgeführt werden sollen, wenn keine der Bedingungen wahr ist (optional)
Sei
Erläuterung:
- [ Bedingung ] = Befehl, der die Bedingung auswertet und einen Exit-Status „wahr“ (0) oder „falsch“ (ungleich Null) zurückgibt.
- then = Es handelt sich um ein Schlüsselwort, das angibt, dass die darauf folgenden Befehle ausgeführt werden, wenn die Bedingung „true“ ergibt.
- elif = (Abkürzung für else if) Dies ist ein Abschnitt, der es uns ermöglicht, zusätzliche zu überprüfende Bedingungen anzugeben.
- else = es ist ein Abschnitt, der Befehle enthält, die ausgeführt werden, wenn keine der Bedingungen wahr ist.
- fi = Es ist ein Schlüsselwort, das das Ende des bedingten Blocks markiert.
16) Wie liest man Zeilen aus einer Datei in einem Shell-Skript?
Zu Zeilen lesen Aus einer Datei innerhalb eines Shell-Skripts können wir verschiedene Methoden verwenden, aber ein gängiger Ansatz ist die Verwendung einer While-Schleife in Kombination mit dem Lesebefehl. So können wir es machen:
#!/bin/bash
file=/home/jayeshkumar/jayesh.txt
# Überprüfen Sie, ob die Datei vorhanden ist
if [ -e $file ]; Dann
while IFS= read -r line; Tun
echo Zeile gelesen: $line
# Fügen Sie hier Ihre Verarbeitungslogik hinzu
erledigt <$file
anders
echo Datei nicht gefunden: $file
Sei
Erläuterung:
- #!/bin/bash: Dies ist die Shebang-Zeile, die den Interpreter (/bin/bash) angibt, der zum Ausführen des Skripts verwendet werden soll.
- file=/home/jayeshkumar/jayesh.txt: Diese Zeile definiert die Variablendatei und weist den vollständigen Pfad zur Datei jayesh.txt im Verzeichnis /home/jayeshkumar zu. Ändern Sie diesen Pfad so, dass er mit dem tatsächlichen Pfad der Datei übereinstimmt, die Sie lesen möchten.
- if [ -e $file ]; then: Diese Zeile beginnt eine if-Anweisung. Es prüft, ob die durch die Variable $file angegebene Datei existiert. Das Flag -e prüft, ob eine Datei vorhanden ist.
- while IFS= read -r line; do: Diese Zeile initiiert eine While-Schleife, die Zeilen aus der Datei liest.
- IFS=: Das IFS (Internal Field Separator) wird auf einen leeren Wert gesetzt, um führende und nachfolgende Leerzeichen beizubehalten.
- read -r line: Dies liest die aktuelle Zeile aus der Datei und speichert sie in der Variablen line.
- echo Zeile gelesen: $line: Diese Zeile gibt den Inhalt der Zeile aus, die aus der Datei gelesen wurde. Die Variable $line enthält den Inhalt der aktuellen Zeile.
- # Fügen Sie hier Ihre Verarbeitungslogik hinzu: Dies ist ein Platzhalterkommentar, in dem Sie Ihre eigene Logik zur Verarbeitung jeder Zeile hinzufügen können. Beispielsweise können Sie die Zeile analysieren, Informationen extrahieren oder bestimmte Aktionen basierend auf dem Inhalt ausführen.
- done <$file: Dies markiert das Ende der while-Schleife. Das < $file leitet den Inhalt der Datei um, damit er von der Schleife gelesen werden kann.
- else: Wenn die Datei nicht existiert (die Bedingung in der if-Anweisung ist falsch), führt das Skript den Code unter dem else-Zweig aus.
- echo Datei nicht gefunden: $file: Diese Zeile gibt eine Fehlermeldung aus, die angibt, dass die angegebene Datei nicht gefunden wurde.
- fi: Diese Zeile markiert das Ende der if-Anweisung.

Datei lesen
Hier haben wir „“ verwendet pwd ` Befehl, um den Pfad des aktuellen Verzeichnisses abzurufen.
17) Schreiben Sie eine Funktion in ein Shell-Skript, die die Fakultät einer bestimmten Zahl berechnet.
Hier ist das Skript, dasBerechnen Sie die Fakultäteiner gegebenen Zahl.
#!/bin/bash
# Definieren Sie eine Funktion zur Berechnung der Fakultät
berechne_faktorial() {
num=$1
Tatsache=1
for ((i=1; i<=num; i++)); Tun
fact=$((fact * i))
Erledigt
echo $fact
}
# Fordern Sie den Benutzer auf, eine Nummer einzugeben
echo Geben Sie eine Zahl ein:
lese input_num
# Rufen Sie die Funktion „calcure_factorial“ mit der Eingabenummer auf
factial_result=$(calculate_factorial $input_num)
# Zeigen Sie das faktorielle Ergebnis an
echo Factorial von $input_num ist: $factorial_result
Erläuterung:
- Das Skript beginnt mit der Shebang-Zeile #!/bin/bash, um den Interpreter anzugeben.
- berechne_faktorial() ist als Funktion definiert. Es benötigt ein Argument, num, das die Zahl ist, für die die Fakultät berechnet werden muss.
- Innerhalb der Funktion wird fact auf 1 initialisiert. Diese Variable speichert das Fakultätsergebnis.
- Die for-Schleife iteriert von 1 bis zur angegebenen Zahl (num). In jeder Iteration multipliziert es den aktuellen Wert von fact mit dem Schleifenindex i.
- Nach Abschluss der Schleife enthält die Faktenvariable die berechnete Fakultät.
- Das Skript fordert den Benutzer mit „read“ zur Eingabe einer Zahl auf.
- Die Funktion „calcure_factorial“ wird mit der vom Benutzer angegebenen Zahl aufgerufen und das Ergebnis wird in der Variablen „factorial_result“ gespeichert.
- Abschließend zeigt das Skript das berechnete Fakultätsergebnis an.

Fakultät
18) Wie gehen Sie mit Signalen wie Strg+C in einem Shell-Skript um?
In einem Shell-Skript können Sie Signale wie Strg+C (auch bekannt als SIGINT) mit dem Trap-Befehl verarbeiten. Strg+C generiert ein SIGINT-Signal, wenn der Benutzer es drückt, um das laufende Skript oder Programm zu unterbrechen. Mithilfe des Trap-Befehls können Sie Aktionen festlegen, die ausgeführt werden sollen, wenn ein bestimmtes Signal empfangen wird. So gehen Sie mit Signalen wie Strg+C in einem Shell-Skript um:
#!/bin/bash
Aufräumen() {
echo Skript unterbrochen. Bereinigung wird durchgeführt…
# Fügen Sie hier Ihre Bereinigungsaktionen hinzu
Ausgang 1
}
# Richten Sie eine Falle ein, um die Bereinigungsfunktion aufzurufen, wenn Strg+C (SIGINT) empfangen wird
Fallenbereinigung SIGINT
# Rest Ihres Skripts
echo Laufen…
Schlaf 10
echo Fertig.
Der Umgang mit Signalen ist wichtig, um Skripte robust zu machen und sicherzustellen, dass sie unerwartete Unterbrechungen ordnungsgemäß verarbeiten. Sie können die Bereinigungsfunktion an Ihre spezifischen Anforderungen anpassen, z. B. Dateien schließen, Prozesse stoppen oder Informationen protokollieren, bevor das Skript beendet wird.
Erläuterung:
- #!/bin/bash: Diese Shebang-Zeile gibt den Interpreter an, der zum Ausführen des Skripts verwendet werden soll.
- cleanup() { … }: Dies definiert eine Funktion namens cleanup. In diese Funktion können Sie alle Aktionen einschließen, die ausgeführt werden müssen, wenn das Skript unterbrochen wird, z. B. das Schließen von Dateien, das Freigeben von Ressourcen oder das Durchführen anderer Bereinigungsaufgaben.
- trap cleanup SIGINT: Der trap-Befehl wird zum Einrichten eines Signalhandlers verwendet. In diesem Fall wird angegeben, dass die Bereinigungsfunktion ausgeführt werden soll, wenn das SIGINT-Signal (Strg+C) empfangen wird.
- echo Running…, sleep 10, echo Finished.: Dies sind nur Beispielbefehle, um die Ausführung eines Skripts zu simulieren.

19) Erstellen Sie ein Skript, das nach doppelten Zeilen in einer Textdatei sucht und diese entfernt.
Hier ist unser Linux-Skript, in dem wir doppelte Zeilen aus einer Textdatei entfernen.
#!/bin/bash
input_file=input.txt
Ausgabedatei=Ausgabe.txt
$input_file | sortieren uniq> $output_file
echo Doppelte Zeilen erfolgreich entfernt.
Erläuterung:
- Das Skript beginnt mit einem Shebang (#!/bin/bash), der angibt, dass das Skript mithilfe der Bash-Shell interpretiert werden soll.
- Die Variable input_file wird auf den Namen der Eingabedatei gesetzt, die doppelte Zeilen enthält (ändern Sie diesen in Ihren tatsächlichen Namen der Eingabedatei).
- Die Variable „output_file“ wird auf den Namen der Ausgabedatei gesetzt, aus der die Duplikate entfernt werden (ändern Sie diesen in den gewünschten Namen der Ausgabedatei).
- Das Skript verwendet den Sortierbefehl, um die Zeilen in der Eingabedatei zu sortieren. Durch das Sortieren der Zeilen wird sichergestellt, dass doppelte Zeilen gruppiert werden.
- Die sortierten Zeilen werden dann durch den Befehl uniq geleitet, der aufeinanderfolgende doppelte Zeilen entfernt. Die Ausgabe dieses Prozesses wird in die Ausgabedatei umgeleitet.
- Nachdem die Duplikate entfernt wurden, gibt das Skript eine Erfolgsmeldung aus.

Entfernen doppelter Zeilen
Hier verwenden wir „ Katze ` um den Text in der Textdatei anzuzeigen.
20) Schreiben Sie ein Skript, das ein sicheres Zufallspasswort generiert.
Hier ist unser Skript zum Generieren eines sicheren Zufallspassworts.
#!/bin/bash
# Funktion zum Generieren eines zufälligen Passworts
generiere Passwort() {
tr -dc 'A-Za-z0-9!@#$%^&*()_+{}[]'
}
# Rufen Sie die Funktion auf und speichern Sie das generierte Passwort
passwort=$(generate_password)
echo Generiertes Passwort: $password
Hinweis: Der Benutzer kann die Länge seines Passworts entsprechend ändern, indem er die Zahl „12“ ersetzt.
Erläuterung:
- Das Skript beginnt mit einem Shebang (#!/bin/bash), der angibt, dass es mit der Bash-Shell interpretiert werden soll.
- Die Funktion „generate_password“ ist so definiert, dass sie ein zufälliges Passwort generiert. So funktioniert das:
- tr -dc 'A-Za-z0-9!@#$%^&*()_+{}[]'
- falten -w 12 unterteilt die gefilterten Zufallsdaten in Zeilen mit einer Breite von jeweils 12 Zeichen.
- head -n 1 wählt die erste Zeile aus und gibt uns effektiv eine zufällige Folge von Zeichen der Länge 12.
- Der Variable „password“ wird das Ergebnis des Aufrufs der Funktion „generate_password“ zugewiesen.
- Abschließend wird das generierte Passwort mittels Echo angezeigt.

21) Schreiben Sie ein Shell-Skript, das die Gesamtgröße aller Dateien in einem Verzeichnis berechnet.
Hier ist ein Shell-Skript zur Berechnung der Gesamtgröße aller Dateien in einem Verzeichnis.
#!/bin/bash
Verzeichnis=/Pfad/zu/Ihrem/Verzeichnis
total_size=$(du -csh $directory | grep total | awk ‚{print $1}‘)
echo Gesamtgröße der Dateien in $directory: $total_size
Erläuterung:
- Das Skript beginnt mit dem Befehl #!/bin/bash, der darauf hinweist, dass es mithilfe der Bash-Shell interpretiert werden soll.
- Die Verzeichnisvariable wird auf den Pfad des Verzeichnisses gesetzt, für das Sie die Gesamtdateigröße berechnen möchten. Ersetzen Sie /path/to/your/directory durch den tatsächlichen Pfad.
- Der Befehl du wird verwendet, um die Dateispeichernutzung abzuschätzen. Die verwendeten Optionen sind:
- -c: Erzeuge eine Gesamtsumme.
- -s: Zeigt nur die Gesamtgröße des angegebenen Verzeichnisses an.
- -h: Druckgrößen in einem für Menschen lesbaren Format (z. B. KB, MB, GB).
- Die Ausgabe von du wird an grep total weitergeleitet, um die Zeile herauszufiltern, die die Gesamtgröße enthält.
- awk „{print $1}“ wird verwendet, um das erste Feld (Gesamtgröße) aus der Zeile zu extrahieren.
- Die berechnete Gesamtgröße wird in der Variablen total_size gespeichert.
- Abschließend zeigt das Skript mithilfe von Echo die Gesamtgröße an.

Gesamtgröße der Dateien
Hier haben wir „“ verwendet pwd ` Befehl, um den aktuellen Verzeichnispfad anzuzeigen.
22) Erklären Sie den Unterschied zwischen if- und elif-Anweisungen beim Shell-Scripting.
| Besonderheit | `if`Staiftement | `elif`-Erklärung |
| Zweck | Erklären Sie den Unterschied zwischen if- und elif-Anweisungen beim Shell-Scripting. | Stellt alternative Bedingungen bereit, um zu überprüfen, ob die anfängliche If-Bedingung falsch ist. |
| Verwendung | Wird für den Anfangszustand verwendet. | Wird nach der anfänglichen if-Bedingung verwendet, um zusätzliche Bedingungen zu überprüfen. |
| Anzahl der Blöcke | Kann nur einen if-Block haben. | Kann mehrere elif-Blöcke haben, aber nur einen else-Block (optional). |
| Ausführung | Führt den mit der if-Anweisung verknüpften Codeblock aus, wenn die Bedingung wahr ist. Wenn die Bedingung falsch ist, wird der else-Block (falls vorhanden) ausgeführt (optional). | Überprüft jede Elif-Bedingung der Reihe nach. Wenn eine elif-Bedingung wahr ist, wird der entsprechende Codeblock ausgeführt und das Skript verlässt den gesamten bedingten Block. Wenn keine der elif-Bedingungen wahr ist, wird der else-Block (falls vorhanden) ausgeführt. |
| Verschachtelte Strukturen | Kann in anderen if-, elif- oder else-Blöcken verschachtelt werden. | Kann nicht in einem anderen elif-Block verschachtelt werden, kann aber in einem if- oder else-Block verwendet werden. |
Lassen Sie es uns anhand eines Beispiels verstehen.
#!/bin/bash
Zahl=5
if [ $number -gt 10 ]; Dann
echo $number ist größer als 10
anders
echo $number ist nicht größer als 10
Sei
Echo ——–
if [ $number -gt 10 ]; Dann
echo $number ist größer als 10
elif [ $number -eq 10 ]; Dann
echo $number ist gleich 10
anders
echo $number ist kleiner als 10
Sei
Erläuterung:
In diesem Beispiel prüft der erste if-Block, ob die Zahl größer als 10 ist. Wenn nicht, gibt er eine Meldung aus, die angibt, dass die Zahl nicht größer als 10 ist. Der zweite Block mit elif-Anweisungen prüft nacheinander mehrere Bedingungen, bis eine davon wahr ist. Da in diesem Fall der Wert von number 5 ist, lautet die Ausgabe:

if_elif Unterschied
23) Wie nutzt man eine While-Schleife, um Befehle wiederholt auszuführen?
Bei der Shell-Skripterstellung wird eine While-Schleife verwendet, um eine Reihe von Befehlen wiederholt auszuführen, solange eine bestimmte Bedingung erfüllt ist. Die Schleife führt die Befehle so lange aus, bis die Bedingung falsch wird.
Hier ist die grundlegende Syntax einer While-Schleife:
while [ Bedingung ]; Tun
# Auszuführende Befehle
Erledigt
Erläuterung:
- Die „while“-Schleife beginnt mit dem Schlüsselwort „while“, gefolgt von einer in eckigen Klammern eingeschlossenen Bedingung „[ ]“.
- Der Schleifenkörper, der die auszuführenden Befehle enthält, ist in die Schlüsselwörter „do“ und „done“ eingeschlossen.
- Die Schleife prüft zunächst die Bedingung. Wenn die Bedingung wahr ist, werden die Befehle im Schleifenkörper ausgeführt. Nachdem der Schleifenkörper ausgeführt wurde, wird die Bedingung erneut überprüft und der Vorgang wiederholt, bis die Bedingung falsch wird.
Beispiel: Wenn wir Zahlen von 1 bis 5 drucken möchten
#!/bin/bash
Zähler=1
while [ $counter -le 5 ]; Tun
Echo-Nummer: $counter
counter=$((counter + 1))
Erledigt
Erläuterung:
- Die Zählervariable wird auf 1 gesetzt.
- Die while-Schleife prüft, ob der Wert von counter kleiner oder gleich 5 ist. Solange diese Bedingung erfüllt ist, wird die Schleife weiter ausgeführt.
- Innerhalb der Schleife wird der aktuelle Wert des Zählers mithilfe von Echo ausgegeben.
- Der Zähler wird mit dem Ausdruck $((Zähler + 1)) um 1 erhöht.

while-Schleife
24) Erstellen Sie ein Shell-Skript, das alle leeren Dateien in einem Verzeichnis findet und auflistet.
Shell-Skript, mit dem Sie mithilfe der Befehle „find“ und „stat“ alle leeren Dateien in einem Verzeichnis suchen und auflisten können:
#!/bin/bash
Verzeichnis=$1″
if [ -z $directory ]; Dann
Echo-Nutzung: $0
Ausgang 1
Sei
Wenn [ ! -d $Verzeichnis ]; Dann
echo Fehler: „$directory“ ist kein gültiges Verzeichnis.
Ausgang 1
Sei
echo Leere Dateien im $directory:
finde $directory -type f -empty
Erläuterung:
- ` #!/bin/bash „: Dies wird als Shebang bezeichnet und weist das Betriebssystem an, die Bash-Shell zum Interpretieren und Ausführen des Skripts zu verwenden.
- ` Verzeichnis=$1″ `: Diese Zeile weist der Variablen ` das erste Befehlszeilenargument (bezeichnet mit $1) zu Verzeichnis `.
- ` if [ -z $directory ]; Dann `: Diese Zeile startet eine if-Anweisung, die prüft, ob das ` Verzeichnis ` Variable ist leer (-z testet auf eine leere Zeichenfolge).
- ` Echo-Nutzung: $0 `: Wenn das Verzeichnis leer ist, gibt diese Zeile eine Nutzungsmeldung aus, wobei ` 0 $ ` steht für den Namen des Skripts.
- ` Ausgang 1 `: Diese Zeile beendet das Skript mit dem Exit-Code ` 1 `, was auf einen Fehler hinweist.
- ` Sei `: Diese Zeile markiert das Ende des ` Wenn ` Aussage.
- ` Wenn [ ! -d $Verzeichnis ]; Dann `: Dies startet eine weitere if-Anweisung, um zu prüfen, ob das angegebene Verzeichnis existiert (` -D ` testet für ein Verzeichnis).
- ` echo Fehler: „$directory“ ist kein gültiges Verzeichnis. `: Wenn das angegebene Verzeichnis nicht existiert, gibt diese Zeile eine Fehlermeldung aus.
- ` Ausgang 1 `: Beendet das Skript mit dem Exit-Code ` 1 `.
- ` Sei `: Markiert das Ende des zweiten ` wenn` Stellungnahme.
- ` echo Leere Dateien im $directory: `: Wenn bisher alles gültig ist, gibt diese Zeile eine Meldung aus, die angibt, dass das Skript leere Dateien im angegebenen Verzeichnis auflistet.
- ` finde $directory -type f -empty `: Diese Zeile verwendet das ` finden ` Befehl zum Suchen nach leeren Dateien (` -leer `) vom Typ reguläre Dateien (` -Typ f `) im angegebenen Verzeichnis. Anschließend werden diese leeren Dateien aufgelistet.

Leere Dateien finden
Notiz : Wir müssen beim Ausführen des Skripts ein Verzeichnis als Argument angeben. Hier haben wir den Pfad des aktuellen Verzeichnisses home/jayeshkumar/ verwendet
25) Was ist der Zweck des Lesebefehls beim Shell-Scripting?
Mit dem Lesebefehl beim Shell-Scripting fragt das Skript Sie nach Informationen. Es ist, als würde Ihnen ein Computer eine Frage stellen und auf Ihre Antwort warten. Dies ist nützlich für Skripte, bei denen Sie etwas eingeben müssen oder wenn das Skript mit Informationen aus Dateien arbeiten muss. Der Lesebefehl hilft dem Skript, anzuhalten und auf Ihre Eingabe zu warten. Anschließend kann es diese Informationen verwenden, um weitere Aufgaben im Skript auszuführen.
Syntax des Lesebefehls:
read variable_name>
Beispiel : Wenn wir den Namen als Eingabe vom Benutzer verwenden möchten, um ihn zu drucken.
#!/bin/bash
echo Bitte geben Sie Ihren Namen ein:
Namen lesen
echo Hallo, $name!

lies nam
Zusammenfassend lässt sich sagen, dass der Lesebefehl verwendet wird, um Benutzereingaben oder Daten aus Dateien in Shell-Skripten zu erfassen, wodurch die Skripte interaktiver und vielseitiger werden.
26) Schreiben Sie ein Shell-Skript, das alle Dateinamen in einem Verzeichnis in Kleinbuchstaben umwandelt.
Hier ist ein Shell-Skript, das alle Dateinamen in einem Verzeichnis in Kleinbuchstaben umwandelt.
#!/bin/bash
Verzeichnis=$1″
if [ -z $directory ]; Dann
Echo-Nutzung: $0
Ausgang 1
Sei
Wenn [ ! -d $Verzeichnis ]; Dann
echo Fehler: „$directory“ ist kein gültiges Verzeichnis.
Ausgang 1
Sei
cd $verzeichnis || Ausgang 1
für Datei in *; Tun
if [ -f $file ]; Dann
newname=$(echo $file | tr ‚A-Z‘ ‚a-z‘)
[ $file != $newname ] && mv $file $newname
Sei
Erledigt
Erläuterung:
- #!/bin/bash : Dies ist der Knaller, der angibt, dass das Skript mithilfe der Bash-Shell interpretiert werden soll.
- Verzeichnis=$1″ : Diese Zeile weist das erste Befehlszeilenargument dem Variablenverzeichnis zu.
- if [ -z $directory ]; Dann : Diese Zeile prüft, ob die Verzeichnisvariable leer ist (kein Argument angegeben, wenn das Skript ausgeführt wird).
- Echo-Nutzung: $0 : Wenn das Verzeichnis leer ist, gibt diese Zeile eine Nutzungsmeldung mit dem Namen des Skripts ($0) aus.
- Ausgang 1 : Diese Zeile beendet das Skript mit dem Exit-Code 1, was darauf hinweist, dass ein Fehler aufgetreten ist.
- F i: Dies markiert das Ende der ersten if-Anweisung.
- Wenn [ ! -d $Verzeichnis ]; Dann : Diese Zeile prüft, ob das angegebene Verzeichnis nicht existiert (-d testet ein Verzeichnis).
- echo Fehler: „$directory“ ist kein gültiges Verzeichnis. : Wenn das angegebene Verzeichnis nicht existiert, gibt diese Zeile eine Fehlermeldung aus.
- Ausgang 1 : Beendet das Skript mit dem Exit-Code 1.
- Sei : Markiert das Ende der zweiten if-Anweisung.
- cd $verzeichnis || Ausgang 1 : Ändert das aktuelle Arbeitsverzeichnis in das angegebene Verzeichnis. Wenn der Verzeichniswechsel fehlschlägt (z. B. Verzeichnis nicht vorhanden), wird das Skript mit einem Fehlercode beendet.
- für Datei in *; Tun: ICH für Datei in *; Tun: löst eine Schleife aus, die alle Elemente im aktuellen Verzeichnis durchläuft (* entspricht allen Dateinamen).
- if [ -f $file ]; Dann : Überprüft, ob das aktuelle Schleifeniterationselement eine reguläre Datei ist (-f testet auf eine reguläre Datei).
- newname=$(echo $file | tr ‚A-Z‘ ‚a-z‘) : Wandelt den aktuellen Dateinamen ($file) mit dem Befehl tr in Kleinbuchstaben um und speichert das Ergebnis in der Variablen newname.
- [ $file != $newname ] && mv $file $newname : Vergleicht den ursprünglichen Dateinamen mit dem neuen Dateinamen in Kleinbuchstaben. Wenn sie unterschiedlich sind, wird die Datei mit dem Befehl mv umbenannt.
- Sei : Markiert das Ende der inneren if-Anweisung.
- Erledigt : Markiert das Ende der Schleife.

Notiz : Wir müssen beim Ausführen des Skripts ein Verzeichnis als Argument angeben. Hier haben wir den Pfad des aktuellen Verzeichnisses home/jayeshkumar/test verwendet
27) Wie können Sie arithmetische Operationen innerhalb eines Shell-Skripts verwenden?
Arithmetische Operationen können innerhalb eines Shell-Skripts mithilfe verschiedener integrierter Methoden ausgeführt werden. Die Shell bietet Mechanismen für einfache arithmetische Berechnungen mithilfe der arithmetischen Erweiterung wie:
- Arithmetische Erweiterung ($((…)))
- Verwenden des expr-Befehls
- Verwenden des let-Befehls
Hier ist unser Shell-Skript, das alle drei Methoden für arithmetische Operationen erklärt.
#!/bin/bash
num1=10
num2=5
#Arithmetische Erweiterung ($((…)))
Ergebnis=$((num1 + num2))
echo Summe: $result
#Verwenden des expr-Befehls
sum=$(expr $num1 + $num2)
echo Summe: $sum
#Verwenden des let-Befehls
sei sum = num1 + num2
echo Summe: $sum
Erläuterung:
- `#!/bin/bash` : Dies ist der Knaller, der angibt, dass das Skript mithilfe der Bash-Shell interpretiert werden soll.
- `num1=10` und ` num2=5` : Diese Zeilen weisen den Variablen ` die Werte 10 und 5 zu num1 ` und ` num2 ` bzw.
- `#Arithmetische Erweiterung ($((…)))` : Dies ist ein Kommentar, der den Anfang des Abschnitts angibt, der die arithmetische Erweiterung demonstriert.
- `result=$((num1 + num2))` : Diese Zeile verwendet eine arithmetische Erweiterung, um die Summe von ` zu berechnen num1 ` und ` num2 ` und speichert das Ergebnis im ` Ergebnis ` variabel.
- „echo Summe: $result“. : Diese Zeile gibt die berechnete Summe unter Verwendung des im ` gespeicherten Werts aus Ergebnis ` variabel.
- `#Verwenden des expr-Befehls` : Dies ist ein Kommentar, der den Anfang des Abschnitts angibt, der die Verwendung des „`“ demonstriert Ausdruck ` Befehl für arithmetische Operationen.
- `sum=$(expr $num1 + $num2)` : Diese Zeile verwendet das ` Ausdruck ` Befehl zur Berechnung der Summe von ` num1 ` und ` num2 ` und speichert das Ergebnis im ` Summe ` variabel. Beachten Sie, dass das ` Ausdruck Der Befehl ` erfordert Leerzeichen um die Operatoren.
- „Echo-Summe: $sum“. : Diese Zeile gibt die berechnete Summe unter Verwendung des im ` gespeicherten Werts aus Summe ` variabel.
- `#Verwenden des let-Befehls` : Dies ist ein Kommentar, der den Anfang des Abschnitts angibt, der die Verwendung des „`“ demonstriert lassen ` Befehl für arithmetische Operationen.
- `Lass Summe = num1 + num2″` : Diese Zeile verwendet das ` lassen ` Befehl zur Berechnung der Summe von ` num1 ` und ` num2 ` und weist das Ergebnis dem ` zu Summe ` variabel. Das ` lassen Für den Befehl ` sind keine Leerzeichen um die Operatoren erforderlich.
- „Echo-Summe: $sum“. : Diese Zeile gibt die berechnete Summe unter Verwendung des im ` gespeicherten Werts aus Summe ` variabel.

Arithmetik
28) Erstellen Sie ein Skript, das prüft, ob ein Netzwerkhost erreichbar ist.
Hier ist ein einfaches Shell-Skript, das mithilfe des Ping-Befehls prüft, ob ein Netzwerkhost erreichbar ist:
#!/bin/bash
host=$1″
if [ -z $host ]; Dann
Echo-Nutzung: $0
Ausgang 1
Sei
ping -c 4 $host
wenn [ $? -eq 0 ]; Dann
echo $host ist erreichbar.
anders
echo $host ist nicht erreichbar.
Sei
Erläuterung:
- Es nimmt einen Hostnamen oder eine IP-Adresse als Argument und prüft, ob das Argument angegeben wird.
- Wenn kein Argument angegeben wird, wird eine Nutzungsmeldung angezeigt und der Vorgang beendet.
- Es verwendet den Ping-Befehl mit der Option -c 4, um vier ICMP-Echo-Anfragen an den angegebenen Host zu senden.
- Nachdem der Ping-Befehl ausgeführt wurde, prüft er den Exit-Status ($?). Wenn der Exit-Status 0 ist, bedeutet dies, dass der Host erreichbar ist und das Skript eine Erfolgsmeldung ausgibt. Andernfalls wird eine Fehlermeldung ausgegeben.

Notiz : Wir müssen beim Ausführen des Skripts einen Hostnamen als Argument angeben. Hier haben wir google.com verwendet
29) Schreiben Sie ein Shell-Skript, um das größte Element in einem Array zu finden:
Hier ist ein Shell-Skript, um das größte Element in einem Array zu finden.
#!/bin/bash
# Deklarieren Sie ein Array
array=(3 56 24 89 67)
# Initialisieren Sie eine Variable, um den Maximalwert zu speichern, beginnend mit dem ersten Element
max=${array[0]}
# Durch das Array iterieren
für num in ${array[@]}; Tun
# Vergleichen Sie jedes Element mit dem aktuellen Maximum
if ((num> max)); Dann
max=$num
Sei
Erledigt
# Drucken Sie den Maximalwert aus
echo Das maximale Element im Array ist: $max
Erläuterung:
- ` #!/bin/bash `: Die Shebang-Zeile gibt an, dass das Skript mit der Bash-Shell interpretiert werden soll.
- ` array=(3 56 24 89 67) `: Das Array wird deklariert und mit Werten initialisiert.
- ` max=${array[0]} `: `max` wird mit dem ersten Element des Arrays initialisiert.
- ` für num in ${array[@]}; Tun „: Eine „for“-Schleife wird verwendet, um die Elemente des Arrays zu durchlaufen.
- ` if ((num> max)); Dann „: Eine „if“-Anweisung prüft, ob das aktuelle Element „num“ größer als das aktuelle Maximum „max“ ist.
- ` max=$num`: If`num ` ist größer als `max`, `max` wird mit dem Wert von num aktualisiert.
- ` Erledigt `: Die `for`-Schleife ist geschlossen.
- ` echo Das maximale Element im Array ist: $max `: Abschließend gibt das Skript den im Array gefundenen Maximalwert aus.

größte Zahl
30) Schreiben Sie ein Skript, um die Summe der Elemente in einem Array zu berechnen.
#!/bin/bash
# Deklarieren Sie ein Array
array=(1 65 22 19 94)
# Initialisieren Sie eine Variable, um die Summe zu speichern
Summe=0
# Durchlaufen Sie das Array und fügen Sie jedes Element zur Summe hinzu
für num in ${array[@]}; Tun
am=$((am + am))
Erledigt
# Drucken Sie die Summe aus
echo Die Summe der Elemente im Array ist: $sum
Erläuterung:
` #!/bin/bash `: Die Shebang-Zeile gibt an, dass das Skript mit der Bash-Shell interpretiert werden soll.
` array=(1 65 22 19 94) `: Das Array wird deklariert und mit Werten initialisiert.
` Summe=0 `:` Summe ` wird auf Null initialisiert, um die Summe der Elemente zu speichern.
` für num in ${array[@]}; Tun `: A` für Die Schleife wird verwendet, um die Elemente des Arrays zu durchlaufen.
` am=$((am + am)) `: Innerhalb der Schleife jedes Element ` Auf eins ` wird dem ` hinzugefügt Summe ` variabel.
` Erledigt `: Das ` für ` Schleife ist geschlossen.
„echo Die Summe der Elemente im Array ist: $sum“: Schließlich gibt das Skript die Summe aller Elemente im Array aus.

Summe der Elemente
Erfahren Sie mehr über Shell-Skripte
Abschluss
Wir alle wissen, dass Shell-Skripte sehr nützlich sind, um die Arbeitsproduktivität zu steigern und auch Zeit zu sparen. In diesem Artikel haben wir es also behandelt 30 sehr nützliche und am meisten betrügerische Beispiele für Shell-Skripte . Wir hoffen, dass diese vollständige Anleitung zum Beispiel für Shell-Skripte Ihnen hilft, alles über die Shell-Skripte zu verstehen.
`: Wenn das Verzeichnis leer ist, gibt diese Zeile eine Nutzungsmeldung aus, wobei ` 0 $ ` steht für den Namen des Skripts. - ` Ausgang 1 `: Diese Zeile beendet das Skript mit dem Exit-Code ` 1 `, was auf einen Fehler hinweist.
- ` Sei `: Diese Zeile markiert das Ende des ` Wenn ` Aussage.
- ` Wenn [ ! -d $Verzeichnis ]; Dann `: Dies startet eine weitere if-Anweisung, um zu prüfen, ob das angegebene Verzeichnis existiert (` -D ` testet für ein Verzeichnis).
- ` echo Fehler: „$directory“ ist kein gültiges Verzeichnis. `: Wenn das angegebene Verzeichnis nicht existiert, gibt diese Zeile eine Fehlermeldung aus.
- ` Ausgang 1 `: Beendet das Skript mit dem Exit-Code ` 1 `.
- ` Sei `: Markiert das Ende des zweiten ` wenn` Stellungnahme.
- ` echo Leere Dateien im $directory: `: Wenn bisher alles gültig ist, gibt diese Zeile eine Meldung aus, die angibt, dass das Skript leere Dateien im angegebenen Verzeichnis auflistet.
- ` finde $directory -type f -empty `: Diese Zeile verwendet das ` finden ` Befehl zum Suchen nach leeren Dateien (` -leer `) vom Typ reguläre Dateien (` -Typ f `) im angegebenen Verzeichnis. Anschließend werden diese leeren Dateien aufgelistet.

Leere Dateien finden
Notiz : Wir müssen beim Ausführen des Skripts ein Verzeichnis als Argument angeben. Hier haben wir den Pfad des aktuellen Verzeichnisses home/jayeshkumar/ verwendet
25) Was ist der Zweck des Lesebefehls beim Shell-Scripting?
Mit dem Lesebefehl beim Shell-Scripting fragt das Skript Sie nach Informationen. Es ist, als würde Ihnen ein Computer eine Frage stellen und auf Ihre Antwort warten. Dies ist nützlich für Skripte, bei denen Sie etwas eingeben müssen oder wenn das Skript mit Informationen aus Dateien arbeiten muss. Der Lesebefehl hilft dem Skript, anzuhalten und auf Ihre Eingabe zu warten. Anschließend kann es diese Informationen verwenden, um weitere Aufgaben im Skript auszuführen.
Syntax des Lesebefehls:
read variable_name>
Beispiel : Wenn wir den Namen als Eingabe vom Benutzer verwenden möchten, um ihn zu drucken.
#!/bin/bash
echo Bitte geben Sie Ihren Namen ein:
Namen lesen
echo Hallo, $name!

lies nam
Zusammenfassend lässt sich sagen, dass der Lesebefehl verwendet wird, um Benutzereingaben oder Daten aus Dateien in Shell-Skripten zu erfassen, wodurch die Skripte interaktiver und vielseitiger werden.
26) Schreiben Sie ein Shell-Skript, das alle Dateinamen in einem Verzeichnis in Kleinbuchstaben umwandelt.
Hier ist ein Shell-Skript, das alle Dateinamen in einem Verzeichnis in Kleinbuchstaben umwandelt.
#!/bin/bash
Verzeichnis=″
if [ -z $directory ]; Dann
Echo-Nutzung: Bei allen Linux-Distributionen ist das Shell-Skript wie ein Zauberstab, der den Prozess automatisiert, Benutzern Zeit spart und die Produktivität steigert. Dieses Tutorial zur SOLL-Skripterstellung stellt Ihnen mehr als 25 SOLL-Skripting-Beispiele vor.
Aber bevor wir zum Thema übergehen Shell-Scripting Beispiele: Lassen Sie uns Shell-Skripte und die tatsächlichen Anwendungsfälle von Shell-Skripten verstehen.
Was ist Shell-Skript?
Nun, die Schale ist eine CLI ( Befehlszeileninterpreter ), das in einem Textfenster ausgeführt wird, in dem Benutzer Shell-Befehle verwalten und ausführen können. Andererseits wird der Prozess des Schreibens einer Reihe von Befehlen, die auf einem Linux-System ausgeführt werden sollen. Eine Datei, die solche Anweisungen enthält, wird als Bash-Skript bezeichnet.
Verwendung von Shell-Skripten
Im Folgenden sind einige häufige Verwendungszwecke von Shell Script aufgeführt:
- Aufgabenautomatisierung – Es kann verwendet werden, um sich wiederholende Aufgaben wie regelmäßige Backups und Softwareinstallationsaufgaben zu automatisieren.
- Anpassung - Man kann Shell-Skripte verwenden, um seine Befehlszeilenumgebung zu entwerfen und seine Aufgabe je nach Bedarf einfach auszuführen.
- Dokumentenverwaltung - Die Shell-Skripte können auch zum Verwalten und Bearbeiten von Dateien und Verzeichnissen verwendet werden, beispielsweise zum Verschieben, Kopieren, Umbenennen oder Löschen von Dateien.
Beispiele für Shell-Skripte unter Linux
1) Was bedeutet das Shebang (#!) am Anfang eines Shell-Skripts?
Der Mist (#!) am Anfang eines Skripts gibt den Interpreter an, der zum Ausführen des Skripts verwendet werden soll. Es teilt dem System mit, welche Shell oder welcher Interpreter die Befehle des Skripts interpretieren soll.
Zum Beispiel: Angenommen, wir haben ein Skript mit dem Namen myscript.sh geschrieben in der Bash-Shell:

Mist
In diesem Beispiel:
- Das #!/bin/bash am Anfang des Skripts gibt an, dass das Skript mithilfe der Bash-Shell interpretiert werden soll.
- Die Echo-Befehle werden zum Drucken von Nachrichten an das Terminal verwendet.
2) Wie führt man ein Shell-Skript über die Befehlszeile aus?
Um ein Shell-Skript über die Befehlszeile auszuführen, müssen wir die folgenden Schritte ausführen:
- Stellen Sie sicher, dass die Skriptdatei über ausführbare Berechtigungen verfügt chmod-Befehl :
chmod +x myscript.sh>
- Führen Sie das Skript unter Verwendung seines Dateinamens aus:
./myscript.sh>
Hier muss ersetzt werden myscrtipt.sh mit Ihrem Skriptnamen.
3) Schreiben Sie ein Shell-Skript, das techcodeview.com auf dem Terminal ausgibt.
Erstellen Sie einen Skriptnamen „myscript.sh“ (wir verwenden „ Weil ` Editor, Sie können einen beliebigen Editor auswählen)
vim myscript.sh>
#!/bin/bash
# Dieses Skript druckt techcodeview.com auf dem Terminal
echo techcodeview.com

Namen drucken
Wir machen unser Skript mit „chmod +x“ ausführbar, führen es dann mit „./myscipt.sh“ aus und erhalten die gewünschte Ausgabe techcodeview.com.
4) Erklären Sie den Zweck des Echo-Befehls beim Shell-Scripting.
Der Echo-Befehl dient der Anzeige von Texten oder Variablen auf dem Terminal. Es wird häufig zum Drucken von Nachrichten, Variablenwerten und zum Generieren von Programmausgaben verwendet.

Echo-Befehl
In diesem Beispiel haben wir „echo“ direkt auf dem Terminal ausgeführt, da es innerhalb des Shell-Skripts genauso funktioniert.
5) Wie kann man einer Variablen in einem Shell-Skript einen Wert zuweisen?
Variablen werden Werte mit dem Zuweisungsoperator = zugewiesen.
Zum Beispiel:
#!/bin/bash
# Einer Variablen einen Wert zuweisen
Name=Jayesh
Alter=21
echo $name $age
Erläuterung:
- Der Namensvariablen wird der Wert Jayesh zugewiesen.
- Der Altersvariable wird der Wert 21 zugewiesen.
- echo wird zum Drucken verwendet und `$name` `$age` wird verwendet, um den in den Variablen gespeicherten Wert aufzurufen.

6) Schreiben Sie ein Shell-Skript, das den Namen eines Benutzers als Eingabe verwendet und ihn begrüßt.
Erstellen Sie einen Skriptnamen „example.sh“.
#!/bin/bash
# Fragen Sie den Benutzer nach seinem Namen
echo Wie heißt du?
Namen lesen
# Begrüßen Sie den Benutzer
echo Hallo, $name! Freut mich, Sie kennenzulernen.
Erläuterung:
- #!/bin/bash: Das ist die Shebang-Zeile. Es weist das System an, den Bash-Interpreter zum Ausführen des Skripts zu verwenden.
- # Fragen Sie den Benutzer nach seinem Namen: Dies ist ein Kommentar. Es bietet Kontext zum kommenden Code. Kommentare werden vom Interpreter ignoriert.
- echo Wie heißt du?: Der echo-Befehl wird verwendet, um den Text in doppelten Anführungszeichen auf dem Terminal anzuzeigen.
- Lesename: Der Lesebefehl wartet auf die Eingabe von Text durch den Benutzer und speichert ihn im Variablennamen.
- echo Hallo, $name! Freut mich, Sie kennenzulernen.: Diese Zeile verwendet den echo-Befehl, um eine Begrüßungsnachricht zu drucken, die den Wert der Namensvariablen enthält, der aus der Benutzereingabe erfasst wurde.

7) Wie fügt man einem Shell-Skript Kommentare hinzu?
Kommentare im Shell-Scripting werden verwendet, um Erklärungen oder Kontext zum Code bereitzustellen. Sie werden vom Interpreter ignoriert und sind nur für Menschen gedacht, die das Skript lesen. Mit dem #-Symbol können Sie Kommentare hinzufügen.
#!/bin/bash
# Dies ist ein Kommentar, der den Zweck des Skripts erläutert
echo gfg
8) Erstellen Sie ein Shell-Skript, das prüft, ob eine Datei im aktuellen Verzeichnis vorhanden ist.
Hier ist ein Skript, das prüft, ob eine Datei namens example.txt im aktuellen Verzeichnis vorhanden ist:
#!/bin/bash
file=example.txt
# Überprüfen Sie, ob die Datei vorhanden ist
if [ -e $file ]; Dann
echo Datei existiert: $file
anders
echo Datei nicht gefunden: $file
Sei
Erläuterung:
- #!/bin/bash: Dies ist die Shebang-Zeile, die den Interpreter (/bin/bash) angibt, der zum Ausführen des Skripts verwendet werden soll.
- file=example.txt: Diese Zeile definiert die Variablendatei und weist ihr den Wert example.txt zu. Sie können dies durch den Namen der Datei ersetzen, nach der Sie suchen möchten.
- if [ -e $file ]; then: Diese Zeile beginnt eine if-Anweisung. Die Bedingung [ -e $file ] prüft, ob die durch den Wert der Dateivariablen angegebene Datei existiert. Das Flag -e wird verwendet, um zu prüfen, ob eine Datei vorhanden ist.
- echo Datei existiert: $datei: Wenn die Bedingung wahr ist (d. h. die Datei existiert), gibt diese Zeile eine Meldung aus, die angibt, dass die Datei existiert, zusammen mit dem Namen der Datei.
- else: Wenn die Bedingung falsch ist (d. h. die Datei existiert nicht), führt das Skript den Code unter dem else-Zweig aus.
- echo Datei nicht gefunden: $datei: Diese Zeile gibt eine Fehlermeldung aus, die angibt, dass die angegebene Datei nicht gefunden wurde, zusammen mit dem Namen der Datei.
- fi: Diese Zeile markiert das Ende der if-Anweisung.

Datei wird gefunden
9) Was ist der Unterschied zwischen einfachen Anführungszeichen (‘) und doppelten Anführungszeichen () beim Shell-Scripting?
Einfache Anführungszeichen (‘) und doppelte Anführungszeichen () werden zum Einschließen von Zeichenfolgen in Shell-Skripten verwendet, haben jedoch unterschiedliche Verhaltensweisen:
- Einfache Anführungszeichen: Alles zwischen einfachen Anführungszeichen wird als Literalzeichenfolge behandelt. Variablennamen und die meisten Sonderzeichen werden nicht erweitert.
- Doppelte Anführungszeichen: Variablen und bestimmte Sonderzeichen in doppelten Anführungszeichen werden erweitert. Der Inhalt unterliegt der Variablenersetzung und der Befehlsersetzung.
#!/bin/bash
abcd=Hallo
echo ‚$abcd‘ # Ausgabe: $abcd
echo $abcd # Ausgabe: Hallo
10) Wie können Sie Befehlszeilenargumente in einem Shell-Skript verwenden?
Kommandozeilenargumente sind Werte, die einem Skript bei seiner Ausführung bereitgestellt werden. Auf sie kann innerhalb des Skripts über spezielle Variablen wie $1, $2 usw. zugegriffen werden, wobei $1 das erste Argument, $2 das zweite Argument usw. darstellt.
Zum Beispiel: Wenn unser Skriptname in „example.sh“ steht
#!/bin/bash
echo Skriptname: $0
echo Erstes Argument: $1
echo Zweites Argument: $2
Wenn wir das Skript mit „.example.sh hello_1 hello_2“ ausführen, wird Folgendes ausgegeben:

CLI-Argumente
11) Wie verwenden Sie die for-Schleife, um eine Liste von Werten zu durchlaufen?
Erstellen Sie einen Skriptnamen „example.sh“.
#!/bin/bash
Früchte = (Apfel, Banane, Kirsche, Dattel)
für Obst in ${fruits[@]}; Tun
echo Aktuelle Frucht: $fruit
Erledigt
Erläuterung:
Die Zeile „fruits=“ erstellt ein Array mit dem Namen „Früchte“ mit vier Elementen: Apfel, Banane, Kirsche und Dattel.
- für Obst in ${fruits[@]}; do: Diese Zeile startet eine for-Schleife. Hier ist, was jeder Teil bedeutet:
- für Obst: Dies deklariert eine Schleifenvariable namens Obst. In jeder Iteration der Schleife speichert Fruit den Wert des aktuellen Elements aus dem Fruit-Array.
- ${fruits[@]}: Dies ist eine Array-Erweiterung, die alle Elemente aus dem Fruit-Array übernimmt. Die ${…}-Syntax stellt sicher, dass jedes Element als separates Element behandelt wird.
- do: Dieses Schlüsselwort markiert den Anfang des Schleifenkörpers.
- echo Aktuelle Frucht: $fruit: Innerhalb der Schleife verwendet diese Zeile den Echo-Befehl, um den aktuellen Wert der Schleifenvariablen Frucht anzuzeigen. Für jede Frucht im Array wird eine Meldung wie Aktuelle Frucht: Apfel ausgegeben.
- done: Dieses Schlüsselwort markiert das Ende des Schleifenkörpers. Es teilt dem Skript mit, dass die Schleife beendet ist.

for-Schleife
12) Schreiben Sie ein Shell-Skript, das mithilfe einer Schleife die Summe der ganzen Zahlen von 1 bis N berechnet.
Erstellen Sie einen Skriptnamen „example.sh“.
#!/bin/bash
echo Geben Sie eine Zahl (N) ein:
lies N
Summe=0
for (( i=1; i<=$N; i++ )); Tun
sum=$((sum + i))
Erledigt
echo Die Summe der ganzen Zahlen von 1 bis $N ist: $sum
Erläuterung:
Das Skript fordert Sie zunächst dazu auf, mithilfe von „read“ eine Zahl (N) einzugeben. Diese Zahl bestimmt, wie oft die Schleife ausgeführt wird.
- Die Variablensumme wird auf 0 initialisiert. Diese Variable verfolgt die Summe der Ganzzahlen.
- Die for-Schleife beginnt mit for (( i=1; i<=$N; i++ )). Diese Schleifenstruktur wird verwendet, um eine Reihe von Aktionen eine bestimmte Anzahl von Malen zu wiederholen, in diesem Fall von 1 bis zum Wert N.
- Innerhalb der Schleife passieren folgende Dinge:
- i=1 setzt die Schleifenvariable i zu Beginn jeder Iteration auf 1.
- Die Schleifenbedingung i<=$N prüft, ob i immer noch kleiner oder gleich der angegebenen Zahl N ist.
- Wenn die Bedingung wahr ist, wird der Schleifenkörper ausgeführt.
- sum=$((sum + i)) berechnet den neuen Wert von sum, indem der aktuelle Wert von i dazu addiert wird. Dadurch werden die ganzen Zahlen von 1 bis zum aktuellen i-Wert addiert.
- Nach jeder Iteration erhöht i++ den Wert von i um 1.
- Die Schleife läuft weiter, bis die Bedingung i<=$N falsch wird (wenn i größer als N wird).
- Sobald die Schleife beendet ist, zeigt das Skript die Summe der ganzen Zahlen von 1 bis zur eingegebenen Zahl N an.

13) Erstellen Sie ein Skript, das nach einem bestimmten Wort in einer Datei sucht und dessen Vorkommen zählt.
Erstellen Sie einen Skriptnamen „word_count.sh“.
#!/bin/bash
echo Geben Sie das Wort ein, nach dem gesucht werden soll:
Zielwort lesen
echo Geben Sie den Dateinamen ein:
Dateinamen lesen
count=$(grep -o -w $target_word $filename | wc -l)
echo Das Wort „$target_word“ kommt $count mal in „$filename“ vor.
Erläuterung:
- echo Geben Sie das zu suchende Wort ein:: In dieser Zeile wird eine Meldung angezeigt, in der der Benutzer aufgefordert wird, ein Wort einzugeben, nach dem er in einer Datei suchen möchte.
- read target_word: Diese Zeile liest die vom Benutzer bereitgestellten Eingaben und speichert sie in einer Variablen namens target_word.
- echo Geben Sie den Dateinamen ein:: In dieser Zeile wird eine Meldung angezeigt, in der der Benutzer aufgefordert wird, den Namen der Datei einzugeben, in der er suchen möchte.
- Dateinamen lesen: Diese Zeile liest die vom Benutzer bereitgestellten Eingaben und speichert sie in einer Variablen namens Dateiname.
- count=$(grep -o -w $target_word $filename | wc -l): Diese Zeile erledigt die Hauptarbeit des Skripts. Lassen Sie es uns weiter aufschlüsseln:
- grep -o -w $target_word $filename: Dieser Teil des Befehls sucht nach Vorkommen des target_word im angegebenen Dateinamen. Die Optionen -o und -w stellen sicher, dass nur Ganzwortübereinstimmungen gezählt werden.
- |: Dies ist eine Pipe, die die Ausgabe des vorherigen Befehls übernimmt und als Eingabe an den nächsten Befehl sendet.
- wc -l: Dieser Teil des Befehls verwendet den Befehl wc, um die Anzahl der Zeilen in der Eingabe zu zählen. Die Option -l zählt gezielt die Zeilen.
- Der gesamte Befehl berechnet die Anzahl der Vorkommen des Zielworts in der Datei und weist diese Anzahl der Variablen coun zu

14) Erklären Sie die Unterschiede zwischen Standardausgabe (stdout) und Standardfehler (stderr).
Der Hauptunterschied zwischen Standardausgabe (stdout) und Standardfehler (stderr) ist wie folgt:
- Standardausgabe (stdout): Dies ist der Standardausgabestream, in den die reguläre Ausgabe eines Befehls geht. Es wird standardmäßig auf dem Terminal angezeigt. Sie können es mit> in eine Datei umleiten.
- Standardfehler (stderr): Dies ist der Ausgabestream für Fehlermeldungen und Warnungen. Es wird standardmäßig auch auf dem Terminal angezeigt. Sie können es mit 2> in eine Datei umleiten.
15) Erklären Sie das Konzept bedingter Anweisungen im Shell-Scripting.
Bedingte Anweisungen im Shell-Scripting ermöglichen es uns, Entscheidungen zu treffen und den Ablauf unseres Skripts auf der Grundlage bestimmter Bedingungen zu steuern. Sie ermöglichen unserem Skript, unterschiedliche Befehlssätze auszuführen, je nachdem, ob eine bestimmte Bedingung wahr oder falsch ist. Die primären bedingten Anweisungen beim Shell-Scripting sind die if-Anweisung, die elif-Anweisung (optional) und die else-Anweisung (optional).
Hier ist die Grundstruktur einer bedingten Anweisung im Shell-Scripting:
if [ Bedingung ]; Dann
# Befehle, die ausgeführt werden sollen, wenn die Bedingung wahr ist
elif [ another_condition ]; Dann
# Befehle, die ausgeführt werden sollen, wenn another_condition wahr ist (optional)
anders
# Befehle, die ausgeführt werden sollen, wenn keine der Bedingungen wahr ist (optional)
Sei
Erläuterung:
- [ Bedingung ] = Befehl, der die Bedingung auswertet und einen Exit-Status „wahr“ (0) oder „falsch“ (ungleich Null) zurückgibt.
- then = Es handelt sich um ein Schlüsselwort, das angibt, dass die darauf folgenden Befehle ausgeführt werden, wenn die Bedingung „true“ ergibt.
- elif = (Abkürzung für else if) Dies ist ein Abschnitt, der es uns ermöglicht, zusätzliche zu überprüfende Bedingungen anzugeben.
- else = es ist ein Abschnitt, der Befehle enthält, die ausgeführt werden, wenn keine der Bedingungen wahr ist.
- fi = Es ist ein Schlüsselwort, das das Ende des bedingten Blocks markiert.
16) Wie liest man Zeilen aus einer Datei in einem Shell-Skript?
Zu Zeilen lesen Aus einer Datei innerhalb eines Shell-Skripts können wir verschiedene Methoden verwenden, aber ein gängiger Ansatz ist die Verwendung einer While-Schleife in Kombination mit dem Lesebefehl. So können wir es machen:
#!/bin/bash
file=/home/jayeshkumar/jayesh.txt
# Überprüfen Sie, ob die Datei vorhanden ist
if [ -e $file ]; Dann
while IFS= read -r line; Tun
echo Zeile gelesen: $line
# Fügen Sie hier Ihre Verarbeitungslogik hinzu
erledigt <$file
anders
echo Datei nicht gefunden: $file
Sei
Erläuterung:
- #!/bin/bash: Dies ist die Shebang-Zeile, die den Interpreter (/bin/bash) angibt, der zum Ausführen des Skripts verwendet werden soll.
- file=/home/jayeshkumar/jayesh.txt: Diese Zeile definiert die Variablendatei und weist den vollständigen Pfad zur Datei jayesh.txt im Verzeichnis /home/jayeshkumar zu. Ändern Sie diesen Pfad so, dass er mit dem tatsächlichen Pfad der Datei übereinstimmt, die Sie lesen möchten.
- if [ -e $file ]; then: Diese Zeile beginnt eine if-Anweisung. Es prüft, ob die durch die Variable $file angegebene Datei existiert. Das Flag -e prüft, ob eine Datei vorhanden ist.
- while IFS= read -r line; do: Diese Zeile initiiert eine While-Schleife, die Zeilen aus der Datei liest.
- IFS=: Das IFS (Internal Field Separator) wird auf einen leeren Wert gesetzt, um führende und nachfolgende Leerzeichen beizubehalten.
- read -r line: Dies liest die aktuelle Zeile aus der Datei und speichert sie in der Variablen line.
- echo Zeile gelesen: $line: Diese Zeile gibt den Inhalt der Zeile aus, die aus der Datei gelesen wurde. Die Variable $line enthält den Inhalt der aktuellen Zeile.
- # Fügen Sie hier Ihre Verarbeitungslogik hinzu: Dies ist ein Platzhalterkommentar, in dem Sie Ihre eigene Logik zur Verarbeitung jeder Zeile hinzufügen können. Beispielsweise können Sie die Zeile analysieren, Informationen extrahieren oder bestimmte Aktionen basierend auf dem Inhalt ausführen.
- done <$file: Dies markiert das Ende der while-Schleife. Das < $file leitet den Inhalt der Datei um, damit er von der Schleife gelesen werden kann.
- else: Wenn die Datei nicht existiert (die Bedingung in der if-Anweisung ist falsch), führt das Skript den Code unter dem else-Zweig aus.
- echo Datei nicht gefunden: $file: Diese Zeile gibt eine Fehlermeldung aus, die angibt, dass die angegebene Datei nicht gefunden wurde.
- fi: Diese Zeile markiert das Ende der if-Anweisung.

Datei lesen
Hier haben wir „“ verwendet pwd ` Befehl, um den Pfad des aktuellen Verzeichnisses abzurufen.
17) Schreiben Sie eine Funktion in ein Shell-Skript, die die Fakultät einer bestimmten Zahl berechnet.
Hier ist das Skript, dasBerechnen Sie die Fakultäteiner gegebenen Zahl.
#!/bin/bash
# Definieren Sie eine Funktion zur Berechnung der Fakultät
berechne_faktorial() {
num=$1
Tatsache=1
for ((i=1; i<=num; i++)); Tun
fact=$((fact * i))
Erledigt
echo $fact
}
# Fordern Sie den Benutzer auf, eine Nummer einzugeben
echo Geben Sie eine Zahl ein:
lese input_num
# Rufen Sie die Funktion „calcure_factorial“ mit der Eingabenummer auf
factial_result=$(calculate_factorial $input_num)
# Zeigen Sie das faktorielle Ergebnis an
echo Factorial von $input_num ist: $factorial_result
Erläuterung:
- Das Skript beginnt mit der Shebang-Zeile #!/bin/bash, um den Interpreter anzugeben.
- berechne_faktorial() ist als Funktion definiert. Es benötigt ein Argument, num, das die Zahl ist, für die die Fakultät berechnet werden muss.
- Innerhalb der Funktion wird fact auf 1 initialisiert. Diese Variable speichert das Fakultätsergebnis.
- Die for-Schleife iteriert von 1 bis zur angegebenen Zahl (num). In jeder Iteration multipliziert es den aktuellen Wert von fact mit dem Schleifenindex i.
- Nach Abschluss der Schleife enthält die Faktenvariable die berechnete Fakultät.
- Das Skript fordert den Benutzer mit „read“ zur Eingabe einer Zahl auf.
- Die Funktion „calcure_factorial“ wird mit der vom Benutzer angegebenen Zahl aufgerufen und das Ergebnis wird in der Variablen „factorial_result“ gespeichert.
- Abschließend zeigt das Skript das berechnete Fakultätsergebnis an.

Fakultät
18) Wie gehen Sie mit Signalen wie Strg+C in einem Shell-Skript um?
In einem Shell-Skript können Sie Signale wie Strg+C (auch bekannt als SIGINT) mit dem Trap-Befehl verarbeiten. Strg+C generiert ein SIGINT-Signal, wenn der Benutzer es drückt, um das laufende Skript oder Programm zu unterbrechen. Mithilfe des Trap-Befehls können Sie Aktionen festlegen, die ausgeführt werden sollen, wenn ein bestimmtes Signal empfangen wird. So gehen Sie mit Signalen wie Strg+C in einem Shell-Skript um:
#!/bin/bash
Aufräumen() {
echo Skript unterbrochen. Bereinigung wird durchgeführt…
# Fügen Sie hier Ihre Bereinigungsaktionen hinzu
Ausgang 1
}
# Richten Sie eine Falle ein, um die Bereinigungsfunktion aufzurufen, wenn Strg+C (SIGINT) empfangen wird
Fallenbereinigung SIGINT
# Rest Ihres Skripts
echo Laufen…
Schlaf 10
echo Fertig.
Der Umgang mit Signalen ist wichtig, um Skripte robust zu machen und sicherzustellen, dass sie unerwartete Unterbrechungen ordnungsgemäß verarbeiten. Sie können die Bereinigungsfunktion an Ihre spezifischen Anforderungen anpassen, z. B. Dateien schließen, Prozesse stoppen oder Informationen protokollieren, bevor das Skript beendet wird.
Erläuterung:
- #!/bin/bash: Diese Shebang-Zeile gibt den Interpreter an, der zum Ausführen des Skripts verwendet werden soll.
- cleanup() { … }: Dies definiert eine Funktion namens cleanup. In diese Funktion können Sie alle Aktionen einschließen, die ausgeführt werden müssen, wenn das Skript unterbrochen wird, z. B. das Schließen von Dateien, das Freigeben von Ressourcen oder das Durchführen anderer Bereinigungsaufgaben.
- trap cleanup SIGINT: Der trap-Befehl wird zum Einrichten eines Signalhandlers verwendet. In diesem Fall wird angegeben, dass die Bereinigungsfunktion ausgeführt werden soll, wenn das SIGINT-Signal (Strg+C) empfangen wird.
- echo Running…, sleep 10, echo Finished.: Dies sind nur Beispielbefehle, um die Ausführung eines Skripts zu simulieren.

19) Erstellen Sie ein Skript, das nach doppelten Zeilen in einer Textdatei sucht und diese entfernt.
Hier ist unser Linux-Skript, in dem wir doppelte Zeilen aus einer Textdatei entfernen.
#!/bin/bash
input_file=input.txt
Ausgabedatei=Ausgabe.txt
$input_file | sortieren uniq> $output_file
echo Doppelte Zeilen erfolgreich entfernt.
Erläuterung:
- Das Skript beginnt mit einem Shebang (#!/bin/bash), der angibt, dass das Skript mithilfe der Bash-Shell interpretiert werden soll.
- Die Variable input_file wird auf den Namen der Eingabedatei gesetzt, die doppelte Zeilen enthält (ändern Sie diesen in Ihren tatsächlichen Namen der Eingabedatei).
- Die Variable „output_file“ wird auf den Namen der Ausgabedatei gesetzt, aus der die Duplikate entfernt werden (ändern Sie diesen in den gewünschten Namen der Ausgabedatei).
- Das Skript verwendet den Sortierbefehl, um die Zeilen in der Eingabedatei zu sortieren. Durch das Sortieren der Zeilen wird sichergestellt, dass doppelte Zeilen gruppiert werden.
- Die sortierten Zeilen werden dann durch den Befehl uniq geleitet, der aufeinanderfolgende doppelte Zeilen entfernt. Die Ausgabe dieses Prozesses wird in die Ausgabedatei umgeleitet.
- Nachdem die Duplikate entfernt wurden, gibt das Skript eine Erfolgsmeldung aus.

Entfernen doppelter Zeilen
Hier verwenden wir „ Katze ` um den Text in der Textdatei anzuzeigen.
20) Schreiben Sie ein Skript, das ein sicheres Zufallspasswort generiert.
Hier ist unser Skript zum Generieren eines sicheren Zufallspassworts.
#!/bin/bash
# Funktion zum Generieren eines zufälligen Passworts
generiere Passwort() {
tr -dc 'A-Za-z0-9!@#$%^&*()_+{}[]'
}
# Rufen Sie die Funktion auf und speichern Sie das generierte Passwort
passwort=$(generate_password)
echo Generiertes Passwort: $password
Hinweis: Der Benutzer kann die Länge seines Passworts entsprechend ändern, indem er die Zahl „12“ ersetzt.
Erläuterung:
- Das Skript beginnt mit einem Shebang (#!/bin/bash), der angibt, dass es mit der Bash-Shell interpretiert werden soll.
- Die Funktion „generate_password“ ist so definiert, dass sie ein zufälliges Passwort generiert. So funktioniert das:
- tr -dc 'A-Za-z0-9!@#$%^&*()_+{}[]'
- falten -w 12 unterteilt die gefilterten Zufallsdaten in Zeilen mit einer Breite von jeweils 12 Zeichen.
- head -n 1 wählt die erste Zeile aus und gibt uns effektiv eine zufällige Folge von Zeichen der Länge 12.
- Der Variable „password“ wird das Ergebnis des Aufrufs der Funktion „generate_password“ zugewiesen.
- Abschließend wird das generierte Passwort mittels Echo angezeigt.

21) Schreiben Sie ein Shell-Skript, das die Gesamtgröße aller Dateien in einem Verzeichnis berechnet.
Hier ist ein Shell-Skript zur Berechnung der Gesamtgröße aller Dateien in einem Verzeichnis.
#!/bin/bash
Verzeichnis=/Pfad/zu/Ihrem/Verzeichnis
total_size=$(du -csh $directory | grep total | awk ‚{print $1}‘)
echo Gesamtgröße der Dateien in $directory: $total_size
Erläuterung:
- Das Skript beginnt mit dem Befehl #!/bin/bash, der darauf hinweist, dass es mithilfe der Bash-Shell interpretiert werden soll.
- Die Verzeichnisvariable wird auf den Pfad des Verzeichnisses gesetzt, für das Sie die Gesamtdateigröße berechnen möchten. Ersetzen Sie /path/to/your/directory durch den tatsächlichen Pfad.
- Der Befehl du wird verwendet, um die Dateispeichernutzung abzuschätzen. Die verwendeten Optionen sind:
- -c: Erzeuge eine Gesamtsumme.
- -s: Zeigt nur die Gesamtgröße des angegebenen Verzeichnisses an.
- -h: Druckgrößen in einem für Menschen lesbaren Format (z. B. KB, MB, GB).
- Die Ausgabe von du wird an grep total weitergeleitet, um die Zeile herauszufiltern, die die Gesamtgröße enthält.
- awk „{print $1}“ wird verwendet, um das erste Feld (Gesamtgröße) aus der Zeile zu extrahieren.
- Die berechnete Gesamtgröße wird in der Variablen total_size gespeichert.
- Abschließend zeigt das Skript mithilfe von Echo die Gesamtgröße an.

Gesamtgröße der Dateien
Hier haben wir „“ verwendet pwd ` Befehl, um den aktuellen Verzeichnispfad anzuzeigen.
22) Erklären Sie den Unterschied zwischen if- und elif-Anweisungen beim Shell-Scripting.
| Besonderheit | `if`Staiftement | `elif`-Erklärung |
| Zweck | Erklären Sie den Unterschied zwischen if- und elif-Anweisungen beim Shell-Scripting. | Stellt alternative Bedingungen bereit, um zu überprüfen, ob die anfängliche If-Bedingung falsch ist. |
| Verwendung | Wird für den Anfangszustand verwendet. | Wird nach der anfänglichen if-Bedingung verwendet, um zusätzliche Bedingungen zu überprüfen. |
| Anzahl der Blöcke | Kann nur einen if-Block haben. | Kann mehrere elif-Blöcke haben, aber nur einen else-Block (optional). |
| Ausführung | Führt den mit der if-Anweisung verknüpften Codeblock aus, wenn die Bedingung wahr ist. Wenn die Bedingung falsch ist, wird der else-Block (falls vorhanden) ausgeführt (optional). | Überprüft jede Elif-Bedingung der Reihe nach. Wenn eine elif-Bedingung wahr ist, wird der entsprechende Codeblock ausgeführt und das Skript verlässt den gesamten bedingten Block. Wenn keine der elif-Bedingungen wahr ist, wird der else-Block (falls vorhanden) ausgeführt. |
| Verschachtelte Strukturen | Kann in anderen if-, elif- oder else-Blöcken verschachtelt werden. | Kann nicht in einem anderen elif-Block verschachtelt werden, kann aber in einem if- oder else-Block verwendet werden. |
Lassen Sie es uns anhand eines Beispiels verstehen.
#!/bin/bash
Zahl=5
if [ $number -gt 10 ]; Dann
echo $number ist größer als 10
anders
echo $number ist nicht größer als 10
Sei
Echo ——–
if [ $number -gt 10 ]; Dann
echo $number ist größer als 10
elif [ $number -eq 10 ]; Dann
echo $number ist gleich 10
anders
echo $number ist kleiner als 10
Sei
Erläuterung:
In diesem Beispiel prüft der erste if-Block, ob die Zahl größer als 10 ist. Wenn nicht, gibt er eine Meldung aus, die angibt, dass die Zahl nicht größer als 10 ist. Der zweite Block mit elif-Anweisungen prüft nacheinander mehrere Bedingungen, bis eine davon wahr ist. Da in diesem Fall der Wert von number 5 ist, lautet die Ausgabe:

if_elif Unterschied
23) Wie nutzt man eine While-Schleife, um Befehle wiederholt auszuführen?
Bei der Shell-Skripterstellung wird eine While-Schleife verwendet, um eine Reihe von Befehlen wiederholt auszuführen, solange eine bestimmte Bedingung erfüllt ist. Die Schleife führt die Befehle so lange aus, bis die Bedingung falsch wird.
Hier ist die grundlegende Syntax einer While-Schleife:
while [ Bedingung ]; Tun
# Auszuführende Befehle
Erledigt
Erläuterung:
- Die „while“-Schleife beginnt mit dem Schlüsselwort „while“, gefolgt von einer in eckigen Klammern eingeschlossenen Bedingung „[ ]“.
- Der Schleifenkörper, der die auszuführenden Befehle enthält, ist in die Schlüsselwörter „do“ und „done“ eingeschlossen.
- Die Schleife prüft zunächst die Bedingung. Wenn die Bedingung wahr ist, werden die Befehle im Schleifenkörper ausgeführt. Nachdem der Schleifenkörper ausgeführt wurde, wird die Bedingung erneut überprüft und der Vorgang wiederholt, bis die Bedingung falsch wird.
Beispiel: Wenn wir Zahlen von 1 bis 5 drucken möchten
#!/bin/bash
Zähler=1
while [ $counter -le 5 ]; Tun
Echo-Nummer: $counter
counter=$((counter + 1))
Erledigt
Erläuterung:
- Die Zählervariable wird auf 1 gesetzt.
- Die while-Schleife prüft, ob der Wert von counter kleiner oder gleich 5 ist. Solange diese Bedingung erfüllt ist, wird die Schleife weiter ausgeführt.
- Innerhalb der Schleife wird der aktuelle Wert des Zählers mithilfe von Echo ausgegeben.
- Der Zähler wird mit dem Ausdruck $((Zähler + 1)) um 1 erhöht.

while-Schleife
24) Erstellen Sie ein Shell-Skript, das alle leeren Dateien in einem Verzeichnis findet und auflistet.
Shell-Skript, mit dem Sie mithilfe der Befehle „find“ und „stat“ alle leeren Dateien in einem Verzeichnis suchen und auflisten können:
#!/bin/bash
Verzeichnis=$1″
if [ -z $directory ]; Dann
Echo-Nutzung: $0
Ausgang 1
Sei
Wenn [ ! -d $Verzeichnis ]; Dann
echo Fehler: „$directory“ ist kein gültiges Verzeichnis.
Ausgang 1
Sei
echo Leere Dateien im $directory:
finde $directory -type f -empty
Erläuterung:
- ` #!/bin/bash „: Dies wird als Shebang bezeichnet und weist das Betriebssystem an, die Bash-Shell zum Interpretieren und Ausführen des Skripts zu verwenden.
- ` Verzeichnis=$1″ `: Diese Zeile weist der Variablen ` das erste Befehlszeilenargument (bezeichnet mit $1) zu Verzeichnis `.
- ` if [ -z $directory ]; Dann `: Diese Zeile startet eine if-Anweisung, die prüft, ob das ` Verzeichnis ` Variable ist leer (-z testet auf eine leere Zeichenfolge).
- ` Echo-Nutzung: $0 `: Wenn das Verzeichnis leer ist, gibt diese Zeile eine Nutzungsmeldung aus, wobei ` 0 $ ` steht für den Namen des Skripts.
- ` Ausgang 1 `: Diese Zeile beendet das Skript mit dem Exit-Code ` 1 `, was auf einen Fehler hinweist.
- ` Sei `: Diese Zeile markiert das Ende des ` Wenn ` Aussage.
- ` Wenn [ ! -d $Verzeichnis ]; Dann `: Dies startet eine weitere if-Anweisung, um zu prüfen, ob das angegebene Verzeichnis existiert (` -D ` testet für ein Verzeichnis).
- ` echo Fehler: „$directory“ ist kein gültiges Verzeichnis. `: Wenn das angegebene Verzeichnis nicht existiert, gibt diese Zeile eine Fehlermeldung aus.
- ` Ausgang 1 `: Beendet das Skript mit dem Exit-Code ` 1 `.
- ` Sei `: Markiert das Ende des zweiten ` wenn` Stellungnahme.
- ` echo Leere Dateien im $directory: `: Wenn bisher alles gültig ist, gibt diese Zeile eine Meldung aus, die angibt, dass das Skript leere Dateien im angegebenen Verzeichnis auflistet.
- ` finde $directory -type f -empty `: Diese Zeile verwendet das ` finden ` Befehl zum Suchen nach leeren Dateien (` -leer `) vom Typ reguläre Dateien (` -Typ f `) im angegebenen Verzeichnis. Anschließend werden diese leeren Dateien aufgelistet.

Leere Dateien finden
Notiz : Wir müssen beim Ausführen des Skripts ein Verzeichnis als Argument angeben. Hier haben wir den Pfad des aktuellen Verzeichnisses home/jayeshkumar/ verwendet
25) Was ist der Zweck des Lesebefehls beim Shell-Scripting?
Mit dem Lesebefehl beim Shell-Scripting fragt das Skript Sie nach Informationen. Es ist, als würde Ihnen ein Computer eine Frage stellen und auf Ihre Antwort warten. Dies ist nützlich für Skripte, bei denen Sie etwas eingeben müssen oder wenn das Skript mit Informationen aus Dateien arbeiten muss. Der Lesebefehl hilft dem Skript, anzuhalten und auf Ihre Eingabe zu warten. Anschließend kann es diese Informationen verwenden, um weitere Aufgaben im Skript auszuführen.
Syntax des Lesebefehls:
read variable_name>
Beispiel : Wenn wir den Namen als Eingabe vom Benutzer verwenden möchten, um ihn zu drucken.
#!/bin/bash
echo Bitte geben Sie Ihren Namen ein:
Namen lesen
echo Hallo, $name!

lies nam
Zusammenfassend lässt sich sagen, dass der Lesebefehl verwendet wird, um Benutzereingaben oder Daten aus Dateien in Shell-Skripten zu erfassen, wodurch die Skripte interaktiver und vielseitiger werden.
26) Schreiben Sie ein Shell-Skript, das alle Dateinamen in einem Verzeichnis in Kleinbuchstaben umwandelt.
Hier ist ein Shell-Skript, das alle Dateinamen in einem Verzeichnis in Kleinbuchstaben umwandelt.
#!/bin/bash
Verzeichnis=$1″
if [ -z $directory ]; Dann
Echo-Nutzung: $0
Ausgang 1
Sei
Wenn [ ! -d $Verzeichnis ]; Dann
echo Fehler: „$directory“ ist kein gültiges Verzeichnis.
Ausgang 1
Sei
cd $verzeichnis || Ausgang 1
für Datei in *; Tun
if [ -f $file ]; Dann
newname=$(echo $file | tr ‚A-Z‘ ‚a-z‘)
[ $file != $newname ] && mv $file $newname
Sei
Erledigt
Erläuterung:
- #!/bin/bash : Dies ist der Knaller, der angibt, dass das Skript mithilfe der Bash-Shell interpretiert werden soll.
- Verzeichnis=$1″ : Diese Zeile weist das erste Befehlszeilenargument dem Variablenverzeichnis zu.
- if [ -z $directory ]; Dann : Diese Zeile prüft, ob die Verzeichnisvariable leer ist (kein Argument angegeben, wenn das Skript ausgeführt wird).
- Echo-Nutzung: $0 : Wenn das Verzeichnis leer ist, gibt diese Zeile eine Nutzungsmeldung mit dem Namen des Skripts ($0) aus.
- Ausgang 1 : Diese Zeile beendet das Skript mit dem Exit-Code 1, was darauf hinweist, dass ein Fehler aufgetreten ist.
- F i: Dies markiert das Ende der ersten if-Anweisung.
- Wenn [ ! -d $Verzeichnis ]; Dann : Diese Zeile prüft, ob das angegebene Verzeichnis nicht existiert (-d testet ein Verzeichnis).
- echo Fehler: „$directory“ ist kein gültiges Verzeichnis. : Wenn das angegebene Verzeichnis nicht existiert, gibt diese Zeile eine Fehlermeldung aus.
- Ausgang 1 : Beendet das Skript mit dem Exit-Code 1.
- Sei : Markiert das Ende der zweiten if-Anweisung.
- cd $verzeichnis || Ausgang 1 : Ändert das aktuelle Arbeitsverzeichnis in das angegebene Verzeichnis. Wenn der Verzeichniswechsel fehlschlägt (z. B. Verzeichnis nicht vorhanden), wird das Skript mit einem Fehlercode beendet.
- für Datei in *; Tun: ICH für Datei in *; Tun: löst eine Schleife aus, die alle Elemente im aktuellen Verzeichnis durchläuft (* entspricht allen Dateinamen).
- if [ -f $file ]; Dann : Überprüft, ob das aktuelle Schleifeniterationselement eine reguläre Datei ist (-f testet auf eine reguläre Datei).
- newname=$(echo $file | tr ‚A-Z‘ ‚a-z‘) : Wandelt den aktuellen Dateinamen ($file) mit dem Befehl tr in Kleinbuchstaben um und speichert das Ergebnis in der Variablen newname.
- [ $file != $newname ] && mv $file $newname : Vergleicht den ursprünglichen Dateinamen mit dem neuen Dateinamen in Kleinbuchstaben. Wenn sie unterschiedlich sind, wird die Datei mit dem Befehl mv umbenannt.
- Sei : Markiert das Ende der inneren if-Anweisung.
- Erledigt : Markiert das Ende der Schleife.

Notiz : Wir müssen beim Ausführen des Skripts ein Verzeichnis als Argument angeben. Hier haben wir den Pfad des aktuellen Verzeichnisses home/jayeshkumar/test verwendet
27) Wie können Sie arithmetische Operationen innerhalb eines Shell-Skripts verwenden?
Arithmetische Operationen können innerhalb eines Shell-Skripts mithilfe verschiedener integrierter Methoden ausgeführt werden. Die Shell bietet Mechanismen für einfache arithmetische Berechnungen mithilfe der arithmetischen Erweiterung wie:
- Arithmetische Erweiterung ($((…)))
- Verwenden des expr-Befehls
- Verwenden des let-Befehls
Hier ist unser Shell-Skript, das alle drei Methoden für arithmetische Operationen erklärt.
#!/bin/bash
num1=10
num2=5
#Arithmetische Erweiterung ($((…)))
Ergebnis=$((num1 + num2))
echo Summe: $result
#Verwenden des expr-Befehls
sum=$(expr $num1 + $num2)
echo Summe: $sum
#Verwenden des let-Befehls
sei sum = num1 + num2
echo Summe: $sum
Erläuterung:
- `#!/bin/bash` : Dies ist der Knaller, der angibt, dass das Skript mithilfe der Bash-Shell interpretiert werden soll.
- `num1=10` und ` num2=5` : Diese Zeilen weisen den Variablen ` die Werte 10 und 5 zu num1 ` und ` num2 ` bzw.
- `#Arithmetische Erweiterung ($((…)))` : Dies ist ein Kommentar, der den Anfang des Abschnitts angibt, der die arithmetische Erweiterung demonstriert.
- `result=$((num1 + num2))` : Diese Zeile verwendet eine arithmetische Erweiterung, um die Summe von ` zu berechnen num1 ` und ` num2 ` und speichert das Ergebnis im ` Ergebnis ` variabel.
- „echo Summe: $result“. : Diese Zeile gibt die berechnete Summe unter Verwendung des im ` gespeicherten Werts aus Ergebnis ` variabel.
- `#Verwenden des expr-Befehls` : Dies ist ein Kommentar, der den Anfang des Abschnitts angibt, der die Verwendung des „`“ demonstriert Ausdruck ` Befehl für arithmetische Operationen.
- `sum=$(expr $num1 + $num2)` : Diese Zeile verwendet das ` Ausdruck ` Befehl zur Berechnung der Summe von ` num1 ` und ` num2 ` und speichert das Ergebnis im ` Summe ` variabel. Beachten Sie, dass das ` Ausdruck Der Befehl ` erfordert Leerzeichen um die Operatoren.
- „Echo-Summe: $sum“. : Diese Zeile gibt die berechnete Summe unter Verwendung des im ` gespeicherten Werts aus Summe ` variabel.
- `#Verwenden des let-Befehls` : Dies ist ein Kommentar, der den Anfang des Abschnitts angibt, der die Verwendung des „`“ demonstriert lassen ` Befehl für arithmetische Operationen.
- `Lass Summe = num1 + num2″` : Diese Zeile verwendet das ` lassen ` Befehl zur Berechnung der Summe von ` num1 ` und ` num2 ` und weist das Ergebnis dem ` zu Summe ` variabel. Das ` lassen Für den Befehl ` sind keine Leerzeichen um die Operatoren erforderlich.
- „Echo-Summe: $sum“. : Diese Zeile gibt die berechnete Summe unter Verwendung des im ` gespeicherten Werts aus Summe ` variabel.

Arithmetik
28) Erstellen Sie ein Skript, das prüft, ob ein Netzwerkhost erreichbar ist.
Hier ist ein einfaches Shell-Skript, das mithilfe des Ping-Befehls prüft, ob ein Netzwerkhost erreichbar ist:
#!/bin/bash
host=$1″
if [ -z $host ]; Dann
Echo-Nutzung: $0
Ausgang 1
Sei
ping -c 4 $host
wenn [ $? -eq 0 ]; Dann
echo $host ist erreichbar.
anders
echo $host ist nicht erreichbar.
Sei
Erläuterung:
- Es nimmt einen Hostnamen oder eine IP-Adresse als Argument und prüft, ob das Argument angegeben wird.
- Wenn kein Argument angegeben wird, wird eine Nutzungsmeldung angezeigt und der Vorgang beendet.
- Es verwendet den Ping-Befehl mit der Option -c 4, um vier ICMP-Echo-Anfragen an den angegebenen Host zu senden.
- Nachdem der Ping-Befehl ausgeführt wurde, prüft er den Exit-Status ($?). Wenn der Exit-Status 0 ist, bedeutet dies, dass der Host erreichbar ist und das Skript eine Erfolgsmeldung ausgibt. Andernfalls wird eine Fehlermeldung ausgegeben.

Notiz : Wir müssen beim Ausführen des Skripts einen Hostnamen als Argument angeben. Hier haben wir google.com verwendet
29) Schreiben Sie ein Shell-Skript, um das größte Element in einem Array zu finden:
Hier ist ein Shell-Skript, um das größte Element in einem Array zu finden.
#!/bin/bash
# Deklarieren Sie ein Array
array=(3 56 24 89 67)
# Initialisieren Sie eine Variable, um den Maximalwert zu speichern, beginnend mit dem ersten Element
max=${array[0]}
# Durch das Array iterieren
für num in ${array[@]}; Tun
# Vergleichen Sie jedes Element mit dem aktuellen Maximum
if ((num> max)); Dann
max=$num
Sei
Erledigt
# Drucken Sie den Maximalwert aus
echo Das maximale Element im Array ist: $max
Erläuterung:
- ` #!/bin/bash `: Die Shebang-Zeile gibt an, dass das Skript mit der Bash-Shell interpretiert werden soll.
- ` array=(3 56 24 89 67) `: Das Array wird deklariert und mit Werten initialisiert.
- ` max=${array[0]} `: `max` wird mit dem ersten Element des Arrays initialisiert.
- ` für num in ${array[@]}; Tun „: Eine „for“-Schleife wird verwendet, um die Elemente des Arrays zu durchlaufen.
- ` if ((num> max)); Dann „: Eine „if“-Anweisung prüft, ob das aktuelle Element „num“ größer als das aktuelle Maximum „max“ ist.
- ` max=$num`: If`num ` ist größer als `max`, `max` wird mit dem Wert von num aktualisiert.
- ` Erledigt `: Die `for`-Schleife ist geschlossen.
- ` echo Das maximale Element im Array ist: $max `: Abschließend gibt das Skript den im Array gefundenen Maximalwert aus.

größte Zahl
30) Schreiben Sie ein Skript, um die Summe der Elemente in einem Array zu berechnen.
#!/bin/bash
# Deklarieren Sie ein Array
array=(1 65 22 19 94)
# Initialisieren Sie eine Variable, um die Summe zu speichern
Summe=0
# Durchlaufen Sie das Array und fügen Sie jedes Element zur Summe hinzu
für num in ${array[@]}; Tun
am=$((am + am))
Erledigt
# Drucken Sie die Summe aus
echo Die Summe der Elemente im Array ist: $sum
Erläuterung:
` #!/bin/bash `: Die Shebang-Zeile gibt an, dass das Skript mit der Bash-Shell interpretiert werden soll.
` array=(1 65 22 19 94) `: Das Array wird deklariert und mit Werten initialisiert.
` Summe=0 `:` Summe ` wird auf Null initialisiert, um die Summe der Elemente zu speichern.
` für num in ${array[@]}; Tun `: A` für Die Schleife wird verwendet, um die Elemente des Arrays zu durchlaufen.
` am=$((am + am)) `: Innerhalb der Schleife jedes Element ` Auf eins ` wird dem ` hinzugefügt Summe ` variabel.
` Erledigt `: Das ` für ` Schleife ist geschlossen.
„echo Die Summe der Elemente im Array ist: $sum“: Schließlich gibt das Skript die Summe aller Elemente im Array aus.

Summe der Elemente
Erfahren Sie mehr über Shell-Skripte
Abschluss
Wir alle wissen, dass Shell-Skripte sehr nützlich sind, um die Arbeitsproduktivität zu steigern und auch Zeit zu sparen. In diesem Artikel haben wir es also behandelt 30 sehr nützliche und am meisten betrügerische Beispiele für Shell-Skripte . Wir hoffen, dass diese vollständige Anleitung zum Beispiel für Shell-Skripte Ihnen hilft, alles über die Shell-Skripte zu verstehen.
Ausgang 1
Sei
Wenn [ ! -d $Verzeichnis ]; Dann
echo Fehler: „$directory“ ist kein gültiges Verzeichnis.
Ausgang 1
Sei
cd $verzeichnis || Ausgang 1
für Datei in *; Tun
if [ -f $file ]; Dann
newname=$(echo $file | tr ‚A-Z‘ ‚a-z‘)
[ $file != $newname ] && mv $file $newname
Sei
Erledigt
Erläuterung:
Teilstring-Funktion Java
- #!/bin/bash : Dies ist der Knaller, der angibt, dass das Skript mithilfe der Bash-Shell interpretiert werden soll.
- Verzeichnis=″ : Diese Zeile weist das erste Befehlszeilenargument dem Variablenverzeichnis zu.
- if [ -z $directory ]; Dann : Diese Zeile prüft, ob die Verzeichnisvariable leer ist (kein Argument angegeben, wenn das Skript ausgeführt wird).
- Echo-Nutzung:
Bei allen Linux-Distributionen ist das Shell-Skript wie ein Zauberstab, der den Prozess automatisiert, Benutzern Zeit spart und die Produktivität steigert. Dieses Tutorial zur SOLL-Skripterstellung stellt Ihnen mehr als 25 SOLL-Skripting-Beispiele vor.
Aber bevor wir zum Thema übergehen Shell-Scripting Beispiele: Lassen Sie uns Shell-Skripte und die tatsächlichen Anwendungsfälle von Shell-Skripten verstehen.
Was ist Shell-Skript?
Nun, die Schale ist eine CLI ( Befehlszeileninterpreter ), das in einem Textfenster ausgeführt wird, in dem Benutzer Shell-Befehle verwalten und ausführen können. Andererseits wird der Prozess des Schreibens einer Reihe von Befehlen, die auf einem Linux-System ausgeführt werden sollen. Eine Datei, die solche Anweisungen enthält, wird als Bash-Skript bezeichnet.
Verwendung von Shell-Skripten
Im Folgenden sind einige häufige Verwendungszwecke von Shell Script aufgeführt:
- Aufgabenautomatisierung – Es kann verwendet werden, um sich wiederholende Aufgaben wie regelmäßige Backups und Softwareinstallationsaufgaben zu automatisieren.
- Anpassung - Man kann Shell-Skripte verwenden, um seine Befehlszeilenumgebung zu entwerfen und seine Aufgabe je nach Bedarf einfach auszuführen.
- Dokumentenverwaltung - Die Shell-Skripte können auch zum Verwalten und Bearbeiten von Dateien und Verzeichnissen verwendet werden, beispielsweise zum Verschieben, Kopieren, Umbenennen oder Löschen von Dateien.
Beispiele für Shell-Skripte unter Linux
1) Was bedeutet das Shebang (#!) am Anfang eines Shell-Skripts?
Der Mist (#!) am Anfang eines Skripts gibt den Interpreter an, der zum Ausführen des Skripts verwendet werden soll. Es teilt dem System mit, welche Shell oder welcher Interpreter die Befehle des Skripts interpretieren soll.
Zum Beispiel: Angenommen, wir haben ein Skript mit dem Namen myscript.sh geschrieben in der Bash-Shell:

Mist
In diesem Beispiel:
- Das #!/bin/bash am Anfang des Skripts gibt an, dass das Skript mithilfe der Bash-Shell interpretiert werden soll.
- Die Echo-Befehle werden zum Drucken von Nachrichten an das Terminal verwendet.
2) Wie führt man ein Shell-Skript über die Befehlszeile aus?
Um ein Shell-Skript über die Befehlszeile auszuführen, müssen wir die folgenden Schritte ausführen:
- Stellen Sie sicher, dass die Skriptdatei über ausführbare Berechtigungen verfügt chmod-Befehl :
chmod +x myscript.sh>
- Führen Sie das Skript unter Verwendung seines Dateinamens aus:
./myscript.sh>
Hier muss ersetzt werden myscrtipt.sh mit Ihrem Skriptnamen.
3) Schreiben Sie ein Shell-Skript, das techcodeview.com auf dem Terminal ausgibt.
Erstellen Sie einen Skriptnamen „myscript.sh“ (wir verwenden „ Weil ` Editor, Sie können einen beliebigen Editor auswählen)
vim myscript.sh>
#!/bin/bash
# Dieses Skript druckt techcodeview.com auf dem Terminal
echo techcodeview.com

Namen drucken
Wir machen unser Skript mit „chmod +x“ ausführbar, führen es dann mit „./myscipt.sh“ aus und erhalten die gewünschte Ausgabe techcodeview.com.
4) Erklären Sie den Zweck des Echo-Befehls beim Shell-Scripting.
Der Echo-Befehl dient der Anzeige von Texten oder Variablen auf dem Terminal. Es wird häufig zum Drucken von Nachrichten, Variablenwerten und zum Generieren von Programmausgaben verwendet.

Echo-Befehl
In diesem Beispiel haben wir „echo“ direkt auf dem Terminal ausgeführt, da es innerhalb des Shell-Skripts genauso funktioniert.
5) Wie kann man einer Variablen in einem Shell-Skript einen Wert zuweisen?
Variablen werden Werte mit dem Zuweisungsoperator = zugewiesen.
Zum Beispiel:
#!/bin/bash
# Einer Variablen einen Wert zuweisen
Name=Jayesh
Alter=21
echo $name $age
Erläuterung:
- Der Namensvariablen wird der Wert Jayesh zugewiesen.
- Der Altersvariable wird der Wert 21 zugewiesen.
- echo wird zum Drucken verwendet und `$name` `$age` wird verwendet, um den in den Variablen gespeicherten Wert aufzurufen.

6) Schreiben Sie ein Shell-Skript, das den Namen eines Benutzers als Eingabe verwendet und ihn begrüßt.
Erstellen Sie einen Skriptnamen „example.sh“.
#!/bin/bash
# Fragen Sie den Benutzer nach seinem Namen
echo Wie heißt du?
Namen lesen
# Begrüßen Sie den Benutzer
echo Hallo, $name! Freut mich, Sie kennenzulernen.
Erläuterung:
- #!/bin/bash: Das ist die Shebang-Zeile. Es weist das System an, den Bash-Interpreter zum Ausführen des Skripts zu verwenden.
- # Fragen Sie den Benutzer nach seinem Namen: Dies ist ein Kommentar. Es bietet Kontext zum kommenden Code. Kommentare werden vom Interpreter ignoriert.
- echo Wie heißt du?: Der echo-Befehl wird verwendet, um den Text in doppelten Anführungszeichen auf dem Terminal anzuzeigen.
- Lesename: Der Lesebefehl wartet auf die Eingabe von Text durch den Benutzer und speichert ihn im Variablennamen.
- echo Hallo, $name! Freut mich, Sie kennenzulernen.: Diese Zeile verwendet den echo-Befehl, um eine Begrüßungsnachricht zu drucken, die den Wert der Namensvariablen enthält, der aus der Benutzereingabe erfasst wurde.

7) Wie fügt man einem Shell-Skript Kommentare hinzu?
Kommentare im Shell-Scripting werden verwendet, um Erklärungen oder Kontext zum Code bereitzustellen. Sie werden vom Interpreter ignoriert und sind nur für Menschen gedacht, die das Skript lesen. Mit dem #-Symbol können Sie Kommentare hinzufügen.
#!/bin/bash
# Dies ist ein Kommentar, der den Zweck des Skripts erläutert
echo gfg
8) Erstellen Sie ein Shell-Skript, das prüft, ob eine Datei im aktuellen Verzeichnis vorhanden ist.
Hier ist ein Skript, das prüft, ob eine Datei namens example.txt im aktuellen Verzeichnis vorhanden ist:
#!/bin/bash
file=example.txt
# Überprüfen Sie, ob die Datei vorhanden ist
if [ -e $file ]; Dann
echo Datei existiert: $file
anders
echo Datei nicht gefunden: $file
Sei
Erläuterung:
- #!/bin/bash: Dies ist die Shebang-Zeile, die den Interpreter (/bin/bash) angibt, der zum Ausführen des Skripts verwendet werden soll.
- file=example.txt: Diese Zeile definiert die Variablendatei und weist ihr den Wert example.txt zu. Sie können dies durch den Namen der Datei ersetzen, nach der Sie suchen möchten.
- if [ -e $file ]; then: Diese Zeile beginnt eine if-Anweisung. Die Bedingung [ -e $file ] prüft, ob die durch den Wert der Dateivariablen angegebene Datei existiert. Das Flag -e wird verwendet, um zu prüfen, ob eine Datei vorhanden ist.
- echo Datei existiert: $datei: Wenn die Bedingung wahr ist (d. h. die Datei existiert), gibt diese Zeile eine Meldung aus, die angibt, dass die Datei existiert, zusammen mit dem Namen der Datei.
- else: Wenn die Bedingung falsch ist (d. h. die Datei existiert nicht), führt das Skript den Code unter dem else-Zweig aus.
- echo Datei nicht gefunden: $datei: Diese Zeile gibt eine Fehlermeldung aus, die angibt, dass die angegebene Datei nicht gefunden wurde, zusammen mit dem Namen der Datei.
- fi: Diese Zeile markiert das Ende der if-Anweisung.

Datei wird gefunden
9) Was ist der Unterschied zwischen einfachen Anführungszeichen (‘) und doppelten Anführungszeichen () beim Shell-Scripting?
Einfache Anführungszeichen (‘) und doppelte Anführungszeichen () werden zum Einschließen von Zeichenfolgen in Shell-Skripten verwendet, haben jedoch unterschiedliche Verhaltensweisen:
- Einfache Anführungszeichen: Alles zwischen einfachen Anführungszeichen wird als Literalzeichenfolge behandelt. Variablennamen und die meisten Sonderzeichen werden nicht erweitert.
- Doppelte Anführungszeichen: Variablen und bestimmte Sonderzeichen in doppelten Anführungszeichen werden erweitert. Der Inhalt unterliegt der Variablenersetzung und der Befehlsersetzung.
#!/bin/bash
abcd=Hallo
echo ‚$abcd‘ # Ausgabe: $abcd
echo $abcd # Ausgabe: Hallo
10) Wie können Sie Befehlszeilenargumente in einem Shell-Skript verwenden?
Kommandozeilenargumente sind Werte, die einem Skript bei seiner Ausführung bereitgestellt werden. Auf sie kann innerhalb des Skripts über spezielle Variablen wie $1, $2 usw. zugegriffen werden, wobei $1 das erste Argument, $2 das zweite Argument usw. darstellt.
Zum Beispiel: Wenn unser Skriptname in „example.sh“ steht
#!/bin/bash
echo Skriptname: $0
echo Erstes Argument: $1
echo Zweites Argument: $2
Wenn wir das Skript mit „.example.sh hello_1 hello_2“ ausführen, wird Folgendes ausgegeben:

CLI-Argumente
11) Wie verwenden Sie die for-Schleife, um eine Liste von Werten zu durchlaufen?
Erstellen Sie einen Skriptnamen „example.sh“.
#!/bin/bash
Früchte = (Apfel, Banane, Kirsche, Dattel)
für Obst in ${fruits[@]}; Tun
echo Aktuelle Frucht: $fruit
Erledigt
Erläuterung:
Die Zeile „fruits=“ erstellt ein Array mit dem Namen „Früchte“ mit vier Elementen: Apfel, Banane, Kirsche und Dattel.
- für Obst in ${fruits[@]}; do: Diese Zeile startet eine for-Schleife. Hier ist, was jeder Teil bedeutet:
- für Obst: Dies deklariert eine Schleifenvariable namens Obst. In jeder Iteration der Schleife speichert Fruit den Wert des aktuellen Elements aus dem Fruit-Array.
- ${fruits[@]}: Dies ist eine Array-Erweiterung, die alle Elemente aus dem Fruit-Array übernimmt. Die ${…}-Syntax stellt sicher, dass jedes Element als separates Element behandelt wird.
- do: Dieses Schlüsselwort markiert den Anfang des Schleifenkörpers.
- echo Aktuelle Frucht: $fruit: Innerhalb der Schleife verwendet diese Zeile den Echo-Befehl, um den aktuellen Wert der Schleifenvariablen Frucht anzuzeigen. Für jede Frucht im Array wird eine Meldung wie Aktuelle Frucht: Apfel ausgegeben.
- done: Dieses Schlüsselwort markiert das Ende des Schleifenkörpers. Es teilt dem Skript mit, dass die Schleife beendet ist.

for-Schleife
12) Schreiben Sie ein Shell-Skript, das mithilfe einer Schleife die Summe der ganzen Zahlen von 1 bis N berechnet.
Erstellen Sie einen Skriptnamen „example.sh“.
#!/bin/bash
echo Geben Sie eine Zahl (N) ein:
lies N
Summe=0
for (( i=1; i<=$N; i++ )); Tun
sum=$((sum + i))
Erledigt
echo Die Summe der ganzen Zahlen von 1 bis $N ist: $sum
Erläuterung:
Das Skript fordert Sie zunächst dazu auf, mithilfe von „read“ eine Zahl (N) einzugeben. Diese Zahl bestimmt, wie oft die Schleife ausgeführt wird.
- Die Variablensumme wird auf 0 initialisiert. Diese Variable verfolgt die Summe der Ganzzahlen.
- Die for-Schleife beginnt mit for (( i=1; i<=$N; i++ )). Diese Schleifenstruktur wird verwendet, um eine Reihe von Aktionen eine bestimmte Anzahl von Malen zu wiederholen, in diesem Fall von 1 bis zum Wert N.
- Innerhalb der Schleife passieren folgende Dinge:
- i=1 setzt die Schleifenvariable i zu Beginn jeder Iteration auf 1.
- Die Schleifenbedingung i<=$N prüft, ob i immer noch kleiner oder gleich der angegebenen Zahl N ist.
- Wenn die Bedingung wahr ist, wird der Schleifenkörper ausgeführt.
- sum=$((sum + i)) berechnet den neuen Wert von sum, indem der aktuelle Wert von i dazu addiert wird. Dadurch werden die ganzen Zahlen von 1 bis zum aktuellen i-Wert addiert.
- Nach jeder Iteration erhöht i++ den Wert von i um 1.
- Die Schleife läuft weiter, bis die Bedingung i<=$N falsch wird (wenn i größer als N wird).
- Sobald die Schleife beendet ist, zeigt das Skript die Summe der ganzen Zahlen von 1 bis zur eingegebenen Zahl N an.

13) Erstellen Sie ein Skript, das nach einem bestimmten Wort in einer Datei sucht und dessen Vorkommen zählt.
Erstellen Sie einen Skriptnamen „word_count.sh“.
#!/bin/bash
echo Geben Sie das Wort ein, nach dem gesucht werden soll:
Zielwort lesen
echo Geben Sie den Dateinamen ein:
Dateinamen lesen
count=$(grep -o -w $target_word $filename | wc -l)
echo Das Wort „$target_word“ kommt $count mal in „$filename“ vor.
Erläuterung:
- echo Geben Sie das zu suchende Wort ein:: In dieser Zeile wird eine Meldung angezeigt, in der der Benutzer aufgefordert wird, ein Wort einzugeben, nach dem er in einer Datei suchen möchte.
- read target_word: Diese Zeile liest die vom Benutzer bereitgestellten Eingaben und speichert sie in einer Variablen namens target_word.
- echo Geben Sie den Dateinamen ein:: In dieser Zeile wird eine Meldung angezeigt, in der der Benutzer aufgefordert wird, den Namen der Datei einzugeben, in der er suchen möchte.
- Dateinamen lesen: Diese Zeile liest die vom Benutzer bereitgestellten Eingaben und speichert sie in einer Variablen namens Dateiname.
- count=$(grep -o -w $target_word $filename | wc -l): Diese Zeile erledigt die Hauptarbeit des Skripts. Lassen Sie es uns weiter aufschlüsseln:
- grep -o -w $target_word $filename: Dieser Teil des Befehls sucht nach Vorkommen des target_word im angegebenen Dateinamen. Die Optionen -o und -w stellen sicher, dass nur Ganzwortübereinstimmungen gezählt werden.
- |: Dies ist eine Pipe, die die Ausgabe des vorherigen Befehls übernimmt und als Eingabe an den nächsten Befehl sendet.
- wc -l: Dieser Teil des Befehls verwendet den Befehl wc, um die Anzahl der Zeilen in der Eingabe zu zählen. Die Option -l zählt gezielt die Zeilen.
- Der gesamte Befehl berechnet die Anzahl der Vorkommen des Zielworts in der Datei und weist diese Anzahl der Variablen coun zu

14) Erklären Sie die Unterschiede zwischen Standardausgabe (stdout) und Standardfehler (stderr).
Der Hauptunterschied zwischen Standardausgabe (stdout) und Standardfehler (stderr) ist wie folgt:
- Standardausgabe (stdout): Dies ist der Standardausgabestream, in den die reguläre Ausgabe eines Befehls geht. Es wird standardmäßig auf dem Terminal angezeigt. Sie können es mit> in eine Datei umleiten.
- Standardfehler (stderr): Dies ist der Ausgabestream für Fehlermeldungen und Warnungen. Es wird standardmäßig auch auf dem Terminal angezeigt. Sie können es mit 2> in eine Datei umleiten.
15) Erklären Sie das Konzept bedingter Anweisungen im Shell-Scripting.
Bedingte Anweisungen im Shell-Scripting ermöglichen es uns, Entscheidungen zu treffen und den Ablauf unseres Skripts auf der Grundlage bestimmter Bedingungen zu steuern. Sie ermöglichen unserem Skript, unterschiedliche Befehlssätze auszuführen, je nachdem, ob eine bestimmte Bedingung wahr oder falsch ist. Die primären bedingten Anweisungen beim Shell-Scripting sind die if-Anweisung, die elif-Anweisung (optional) und die else-Anweisung (optional).
Hier ist die Grundstruktur einer bedingten Anweisung im Shell-Scripting:
if [ Bedingung ]; Dann
# Befehle, die ausgeführt werden sollen, wenn die Bedingung wahr ist
elif [ another_condition ]; Dann
# Befehle, die ausgeführt werden sollen, wenn another_condition wahr ist (optional)
anders
# Befehle, die ausgeführt werden sollen, wenn keine der Bedingungen wahr ist (optional)
Sei
Erläuterung:
- [ Bedingung ] = Befehl, der die Bedingung auswertet und einen Exit-Status „wahr“ (0) oder „falsch“ (ungleich Null) zurückgibt.
- then = Es handelt sich um ein Schlüsselwort, das angibt, dass die darauf folgenden Befehle ausgeführt werden, wenn die Bedingung „true“ ergibt.
- elif = (Abkürzung für else if) Dies ist ein Abschnitt, der es uns ermöglicht, zusätzliche zu überprüfende Bedingungen anzugeben.
- else = es ist ein Abschnitt, der Befehle enthält, die ausgeführt werden, wenn keine der Bedingungen wahr ist.
- fi = Es ist ein Schlüsselwort, das das Ende des bedingten Blocks markiert.
16) Wie liest man Zeilen aus einer Datei in einem Shell-Skript?
Zu Zeilen lesen Aus einer Datei innerhalb eines Shell-Skripts können wir verschiedene Methoden verwenden, aber ein gängiger Ansatz ist die Verwendung einer While-Schleife in Kombination mit dem Lesebefehl. So können wir es machen:
#!/bin/bash
file=/home/jayeshkumar/jayesh.txt
# Überprüfen Sie, ob die Datei vorhanden ist
if [ -e $file ]; Dann
while IFS= read -r line; Tun
echo Zeile gelesen: $line
# Fügen Sie hier Ihre Verarbeitungslogik hinzu
erledigt <$file
anders
echo Datei nicht gefunden: $file
Sei
Erläuterung:
- #!/bin/bash: Dies ist die Shebang-Zeile, die den Interpreter (/bin/bash) angibt, der zum Ausführen des Skripts verwendet werden soll.
- file=/home/jayeshkumar/jayesh.txt: Diese Zeile definiert die Variablendatei und weist den vollständigen Pfad zur Datei jayesh.txt im Verzeichnis /home/jayeshkumar zu. Ändern Sie diesen Pfad so, dass er mit dem tatsächlichen Pfad der Datei übereinstimmt, die Sie lesen möchten.
- if [ -e $file ]; then: Diese Zeile beginnt eine if-Anweisung. Es prüft, ob die durch die Variable $file angegebene Datei existiert. Das Flag -e prüft, ob eine Datei vorhanden ist.
- while IFS= read -r line; do: Diese Zeile initiiert eine While-Schleife, die Zeilen aus der Datei liest.
- IFS=: Das IFS (Internal Field Separator) wird auf einen leeren Wert gesetzt, um führende und nachfolgende Leerzeichen beizubehalten.
- read -r line: Dies liest die aktuelle Zeile aus der Datei und speichert sie in der Variablen line.
- echo Zeile gelesen: $line: Diese Zeile gibt den Inhalt der Zeile aus, die aus der Datei gelesen wurde. Die Variable $line enthält den Inhalt der aktuellen Zeile.
- # Fügen Sie hier Ihre Verarbeitungslogik hinzu: Dies ist ein Platzhalterkommentar, in dem Sie Ihre eigene Logik zur Verarbeitung jeder Zeile hinzufügen können. Beispielsweise können Sie die Zeile analysieren, Informationen extrahieren oder bestimmte Aktionen basierend auf dem Inhalt ausführen.
- done <$file: Dies markiert das Ende der while-Schleife. Das < $file leitet den Inhalt der Datei um, damit er von der Schleife gelesen werden kann.
- else: Wenn die Datei nicht existiert (die Bedingung in der if-Anweisung ist falsch), führt das Skript den Code unter dem else-Zweig aus.
- echo Datei nicht gefunden: $file: Diese Zeile gibt eine Fehlermeldung aus, die angibt, dass die angegebene Datei nicht gefunden wurde.
- fi: Diese Zeile markiert das Ende der if-Anweisung.

Datei lesen
Hier haben wir „“ verwendet pwd ` Befehl, um den Pfad des aktuellen Verzeichnisses abzurufen.
17) Schreiben Sie eine Funktion in ein Shell-Skript, die die Fakultät einer bestimmten Zahl berechnet.
Hier ist das Skript, dasBerechnen Sie die Fakultäteiner gegebenen Zahl.
#!/bin/bash
# Definieren Sie eine Funktion zur Berechnung der Fakultät
berechne_faktorial() {
num=$1
Tatsache=1
for ((i=1; i<=num; i++)); Tun
fact=$((fact * i))
Erledigt
echo $fact
}
# Fordern Sie den Benutzer auf, eine Nummer einzugeben
echo Geben Sie eine Zahl ein:
lese input_num
# Rufen Sie die Funktion „calcure_factorial“ mit der Eingabenummer auf
factial_result=$(calculate_factorial $input_num)
# Zeigen Sie das faktorielle Ergebnis an
echo Factorial von $input_num ist: $factorial_result
Erläuterung:
- Das Skript beginnt mit der Shebang-Zeile #!/bin/bash, um den Interpreter anzugeben.
- berechne_faktorial() ist als Funktion definiert. Es benötigt ein Argument, num, das die Zahl ist, für die die Fakultät berechnet werden muss.
- Innerhalb der Funktion wird fact auf 1 initialisiert. Diese Variable speichert das Fakultätsergebnis.
- Die for-Schleife iteriert von 1 bis zur angegebenen Zahl (num). In jeder Iteration multipliziert es den aktuellen Wert von fact mit dem Schleifenindex i.
- Nach Abschluss der Schleife enthält die Faktenvariable die berechnete Fakultät.
- Das Skript fordert den Benutzer mit „read“ zur Eingabe einer Zahl auf.
- Die Funktion „calcure_factorial“ wird mit der vom Benutzer angegebenen Zahl aufgerufen und das Ergebnis wird in der Variablen „factorial_result“ gespeichert.
- Abschließend zeigt das Skript das berechnete Fakultätsergebnis an.

Fakultät
18) Wie gehen Sie mit Signalen wie Strg+C in einem Shell-Skript um?
In einem Shell-Skript können Sie Signale wie Strg+C (auch bekannt als SIGINT) mit dem Trap-Befehl verarbeiten. Strg+C generiert ein SIGINT-Signal, wenn der Benutzer es drückt, um das laufende Skript oder Programm zu unterbrechen. Mithilfe des Trap-Befehls können Sie Aktionen festlegen, die ausgeführt werden sollen, wenn ein bestimmtes Signal empfangen wird. So gehen Sie mit Signalen wie Strg+C in einem Shell-Skript um:
#!/bin/bash
Aufräumen() {
echo Skript unterbrochen. Bereinigung wird durchgeführt…
# Fügen Sie hier Ihre Bereinigungsaktionen hinzu
Ausgang 1
}
# Richten Sie eine Falle ein, um die Bereinigungsfunktion aufzurufen, wenn Strg+C (SIGINT) empfangen wird
Fallenbereinigung SIGINT
# Rest Ihres Skripts
echo Laufen…
Schlaf 10
echo Fertig.
Der Umgang mit Signalen ist wichtig, um Skripte robust zu machen und sicherzustellen, dass sie unerwartete Unterbrechungen ordnungsgemäß verarbeiten. Sie können die Bereinigungsfunktion an Ihre spezifischen Anforderungen anpassen, z. B. Dateien schließen, Prozesse stoppen oder Informationen protokollieren, bevor das Skript beendet wird.
Erläuterung:
- #!/bin/bash: Diese Shebang-Zeile gibt den Interpreter an, der zum Ausführen des Skripts verwendet werden soll.
- cleanup() { … }: Dies definiert eine Funktion namens cleanup. In diese Funktion können Sie alle Aktionen einschließen, die ausgeführt werden müssen, wenn das Skript unterbrochen wird, z. B. das Schließen von Dateien, das Freigeben von Ressourcen oder das Durchführen anderer Bereinigungsaufgaben.
- trap cleanup SIGINT: Der trap-Befehl wird zum Einrichten eines Signalhandlers verwendet. In diesem Fall wird angegeben, dass die Bereinigungsfunktion ausgeführt werden soll, wenn das SIGINT-Signal (Strg+C) empfangen wird.
- echo Running…, sleep 10, echo Finished.: Dies sind nur Beispielbefehle, um die Ausführung eines Skripts zu simulieren.

19) Erstellen Sie ein Skript, das nach doppelten Zeilen in einer Textdatei sucht und diese entfernt.
Hier ist unser Linux-Skript, in dem wir doppelte Zeilen aus einer Textdatei entfernen.
#!/bin/bash
input_file=input.txt
Ausgabedatei=Ausgabe.txt
$input_file | sortieren uniq> $output_file
echo Doppelte Zeilen erfolgreich entfernt.
Erläuterung:
- Das Skript beginnt mit einem Shebang (#!/bin/bash), der angibt, dass das Skript mithilfe der Bash-Shell interpretiert werden soll.
- Die Variable input_file wird auf den Namen der Eingabedatei gesetzt, die doppelte Zeilen enthält (ändern Sie diesen in Ihren tatsächlichen Namen der Eingabedatei).
- Die Variable „output_file“ wird auf den Namen der Ausgabedatei gesetzt, aus der die Duplikate entfernt werden (ändern Sie diesen in den gewünschten Namen der Ausgabedatei).
- Das Skript verwendet den Sortierbefehl, um die Zeilen in der Eingabedatei zu sortieren. Durch das Sortieren der Zeilen wird sichergestellt, dass doppelte Zeilen gruppiert werden.
- Die sortierten Zeilen werden dann durch den Befehl uniq geleitet, der aufeinanderfolgende doppelte Zeilen entfernt. Die Ausgabe dieses Prozesses wird in die Ausgabedatei umgeleitet.
- Nachdem die Duplikate entfernt wurden, gibt das Skript eine Erfolgsmeldung aus.

Entfernen doppelter Zeilen
Hier verwenden wir „ Katze ` um den Text in der Textdatei anzuzeigen.
20) Schreiben Sie ein Skript, das ein sicheres Zufallspasswort generiert.
Hier ist unser Skript zum Generieren eines sicheren Zufallspassworts.
#!/bin/bash
# Funktion zum Generieren eines zufälligen Passworts
generiere Passwort() {
tr -dc 'A-Za-z0-9!@#$%^&*()_+{}[]'
}
# Rufen Sie die Funktion auf und speichern Sie das generierte Passwort
passwort=$(generate_password)
echo Generiertes Passwort: $password
Hinweis: Der Benutzer kann die Länge seines Passworts entsprechend ändern, indem er die Zahl „12“ ersetzt.
Erläuterung:
- Das Skript beginnt mit einem Shebang (#!/bin/bash), der angibt, dass es mit der Bash-Shell interpretiert werden soll.
- Die Funktion „generate_password“ ist so definiert, dass sie ein zufälliges Passwort generiert. So funktioniert das:
- tr -dc 'A-Za-z0-9!@#$%^&*()_+{}[]'
- falten -w 12 unterteilt die gefilterten Zufallsdaten in Zeilen mit einer Breite von jeweils 12 Zeichen.
- head -n 1 wählt die erste Zeile aus und gibt uns effektiv eine zufällige Folge von Zeichen der Länge 12.
- Der Variable „password“ wird das Ergebnis des Aufrufs der Funktion „generate_password“ zugewiesen.
- Abschließend wird das generierte Passwort mittels Echo angezeigt.

21) Schreiben Sie ein Shell-Skript, das die Gesamtgröße aller Dateien in einem Verzeichnis berechnet.
Hier ist ein Shell-Skript zur Berechnung der Gesamtgröße aller Dateien in einem Verzeichnis.
#!/bin/bash
Verzeichnis=/Pfad/zu/Ihrem/Verzeichnis
total_size=$(du -csh $directory | grep total | awk ‚{print $1}‘)
echo Gesamtgröße der Dateien in $directory: $total_size
Erläuterung:
- Das Skript beginnt mit dem Befehl #!/bin/bash, der darauf hinweist, dass es mithilfe der Bash-Shell interpretiert werden soll.
- Die Verzeichnisvariable wird auf den Pfad des Verzeichnisses gesetzt, für das Sie die Gesamtdateigröße berechnen möchten. Ersetzen Sie /path/to/your/directory durch den tatsächlichen Pfad.
- Der Befehl du wird verwendet, um die Dateispeichernutzung abzuschätzen. Die verwendeten Optionen sind:
- -c: Erzeuge eine Gesamtsumme.
- -s: Zeigt nur die Gesamtgröße des angegebenen Verzeichnisses an.
- -h: Druckgrößen in einem für Menschen lesbaren Format (z. B. KB, MB, GB).
- Die Ausgabe von du wird an grep total weitergeleitet, um die Zeile herauszufiltern, die die Gesamtgröße enthält.
- awk „{print $1}“ wird verwendet, um das erste Feld (Gesamtgröße) aus der Zeile zu extrahieren.
- Die berechnete Gesamtgröße wird in der Variablen total_size gespeichert.
- Abschließend zeigt das Skript mithilfe von Echo die Gesamtgröße an.

Gesamtgröße der Dateien
Hier haben wir „“ verwendet pwd ` Befehl, um den aktuellen Verzeichnispfad anzuzeigen.
22) Erklären Sie den Unterschied zwischen if- und elif-Anweisungen beim Shell-Scripting.
| Besonderheit | `if`Staiftement | `elif`-Erklärung |
| Zweck | Erklären Sie den Unterschied zwischen if- und elif-Anweisungen beim Shell-Scripting. | Stellt alternative Bedingungen bereit, um zu überprüfen, ob die anfängliche If-Bedingung falsch ist. |
| Verwendung | Wird für den Anfangszustand verwendet. | Wird nach der anfänglichen if-Bedingung verwendet, um zusätzliche Bedingungen zu überprüfen. |
| Anzahl der Blöcke | Kann nur einen if-Block haben. | Kann mehrere elif-Blöcke haben, aber nur einen else-Block (optional). |
| Ausführung | Führt den mit der if-Anweisung verknüpften Codeblock aus, wenn die Bedingung wahr ist. Wenn die Bedingung falsch ist, wird der else-Block (falls vorhanden) ausgeführt (optional). | Überprüft jede Elif-Bedingung der Reihe nach. Wenn eine elif-Bedingung wahr ist, wird der entsprechende Codeblock ausgeführt und das Skript verlässt den gesamten bedingten Block. Wenn keine der elif-Bedingungen wahr ist, wird der else-Block (falls vorhanden) ausgeführt. |
| Verschachtelte Strukturen | Kann in anderen if-, elif- oder else-Blöcken verschachtelt werden. | Kann nicht in einem anderen elif-Block verschachtelt werden, kann aber in einem if- oder else-Block verwendet werden. |
Lassen Sie es uns anhand eines Beispiels verstehen.
#!/bin/bash
Zahl=5
if [ $number -gt 10 ]; Dann
echo $number ist größer als 10
anders
echo $number ist nicht größer als 10
Sei
Echo ——–
if [ $number -gt 10 ]; Dann
echo $number ist größer als 10
elif [ $number -eq 10 ]; Dann
echo $number ist gleich 10
anders
echo $number ist kleiner als 10
Sei
Erläuterung:
In diesem Beispiel prüft der erste if-Block, ob die Zahl größer als 10 ist. Wenn nicht, gibt er eine Meldung aus, die angibt, dass die Zahl nicht größer als 10 ist. Der zweite Block mit elif-Anweisungen prüft nacheinander mehrere Bedingungen, bis eine davon wahr ist. Da in diesem Fall der Wert von number 5 ist, lautet die Ausgabe:

if_elif Unterschied
23) Wie nutzt man eine While-Schleife, um Befehle wiederholt auszuführen?
Bei der Shell-Skripterstellung wird eine While-Schleife verwendet, um eine Reihe von Befehlen wiederholt auszuführen, solange eine bestimmte Bedingung erfüllt ist. Die Schleife führt die Befehle so lange aus, bis die Bedingung falsch wird.
Hier ist die grundlegende Syntax einer While-Schleife:
while [ Bedingung ]; Tun
# Auszuführende Befehle
Erledigt
Erläuterung:
- Die „while“-Schleife beginnt mit dem Schlüsselwort „while“, gefolgt von einer in eckigen Klammern eingeschlossenen Bedingung „[ ]“.
- Der Schleifenkörper, der die auszuführenden Befehle enthält, ist in die Schlüsselwörter „do“ und „done“ eingeschlossen.
- Die Schleife prüft zunächst die Bedingung. Wenn die Bedingung wahr ist, werden die Befehle im Schleifenkörper ausgeführt. Nachdem der Schleifenkörper ausgeführt wurde, wird die Bedingung erneut überprüft und der Vorgang wiederholt, bis die Bedingung falsch wird.
Beispiel: Wenn wir Zahlen von 1 bis 5 drucken möchten
#!/bin/bash
Zähler=1
while [ $counter -le 5 ]; Tun
Echo-Nummer: $counter
counter=$((counter + 1))
Erledigt
Erläuterung:
- Die Zählervariable wird auf 1 gesetzt.
- Die while-Schleife prüft, ob der Wert von counter kleiner oder gleich 5 ist. Solange diese Bedingung erfüllt ist, wird die Schleife weiter ausgeführt.
- Innerhalb der Schleife wird der aktuelle Wert des Zählers mithilfe von Echo ausgegeben.
- Der Zähler wird mit dem Ausdruck $((Zähler + 1)) um 1 erhöht.

while-Schleife
24) Erstellen Sie ein Shell-Skript, das alle leeren Dateien in einem Verzeichnis findet und auflistet.
Shell-Skript, mit dem Sie mithilfe der Befehle „find“ und „stat“ alle leeren Dateien in einem Verzeichnis suchen und auflisten können:
#!/bin/bash
Verzeichnis=$1″
if [ -z $directory ]; Dann
Echo-Nutzung: $0
Ausgang 1
Sei
Wenn [ ! -d $Verzeichnis ]; Dann
echo Fehler: „$directory“ ist kein gültiges Verzeichnis.
Ausgang 1
Sei
echo Leere Dateien im $directory:
finde $directory -type f -empty
Erläuterung:
- ` #!/bin/bash „: Dies wird als Shebang bezeichnet und weist das Betriebssystem an, die Bash-Shell zum Interpretieren und Ausführen des Skripts zu verwenden.
- ` Verzeichnis=$1″ `: Diese Zeile weist der Variablen ` das erste Befehlszeilenargument (bezeichnet mit $1) zu Verzeichnis `.
- ` if [ -z $directory ]; Dann `: Diese Zeile startet eine if-Anweisung, die prüft, ob das ` Verzeichnis ` Variable ist leer (-z testet auf eine leere Zeichenfolge).
- ` Echo-Nutzung: $0 `: Wenn das Verzeichnis leer ist, gibt diese Zeile eine Nutzungsmeldung aus, wobei ` 0 $ ` steht für den Namen des Skripts.
- ` Ausgang 1 `: Diese Zeile beendet das Skript mit dem Exit-Code ` 1 `, was auf einen Fehler hinweist.
- ` Sei `: Diese Zeile markiert das Ende des ` Wenn ` Aussage.
- ` Wenn [ ! -d $Verzeichnis ]; Dann `: Dies startet eine weitere if-Anweisung, um zu prüfen, ob das angegebene Verzeichnis existiert (` -D ` testet für ein Verzeichnis).
- ` echo Fehler: „$directory“ ist kein gültiges Verzeichnis. `: Wenn das angegebene Verzeichnis nicht existiert, gibt diese Zeile eine Fehlermeldung aus.
- ` Ausgang 1 `: Beendet das Skript mit dem Exit-Code ` 1 `.
- ` Sei `: Markiert das Ende des zweiten ` wenn` Stellungnahme.
- ` echo Leere Dateien im $directory: `: Wenn bisher alles gültig ist, gibt diese Zeile eine Meldung aus, die angibt, dass das Skript leere Dateien im angegebenen Verzeichnis auflistet.
- ` finde $directory -type f -empty `: Diese Zeile verwendet das ` finden ` Befehl zum Suchen nach leeren Dateien (` -leer `) vom Typ reguläre Dateien (` -Typ f `) im angegebenen Verzeichnis. Anschließend werden diese leeren Dateien aufgelistet.

Leere Dateien finden
Notiz : Wir müssen beim Ausführen des Skripts ein Verzeichnis als Argument angeben. Hier haben wir den Pfad des aktuellen Verzeichnisses home/jayeshkumar/ verwendet
25) Was ist der Zweck des Lesebefehls beim Shell-Scripting?
Mit dem Lesebefehl beim Shell-Scripting fragt das Skript Sie nach Informationen. Es ist, als würde Ihnen ein Computer eine Frage stellen und auf Ihre Antwort warten. Dies ist nützlich für Skripte, bei denen Sie etwas eingeben müssen oder wenn das Skript mit Informationen aus Dateien arbeiten muss. Der Lesebefehl hilft dem Skript, anzuhalten und auf Ihre Eingabe zu warten. Anschließend kann es diese Informationen verwenden, um weitere Aufgaben im Skript auszuführen.
Syntax des Lesebefehls:
read variable_name>
Beispiel : Wenn wir den Namen als Eingabe vom Benutzer verwenden möchten, um ihn zu drucken.
#!/bin/bash
echo Bitte geben Sie Ihren Namen ein:
Namen lesen
echo Hallo, $name!

lies nam
Zusammenfassend lässt sich sagen, dass der Lesebefehl verwendet wird, um Benutzereingaben oder Daten aus Dateien in Shell-Skripten zu erfassen, wodurch die Skripte interaktiver und vielseitiger werden.
26) Schreiben Sie ein Shell-Skript, das alle Dateinamen in einem Verzeichnis in Kleinbuchstaben umwandelt.
Hier ist ein Shell-Skript, das alle Dateinamen in einem Verzeichnis in Kleinbuchstaben umwandelt.
#!/bin/bash
Verzeichnis=$1″
if [ -z $directory ]; Dann
Echo-Nutzung: $0
Ausgang 1
Sei
Wenn [ ! -d $Verzeichnis ]; Dann
echo Fehler: „$directory“ ist kein gültiges Verzeichnis.
Ausgang 1
Sei
cd $verzeichnis || Ausgang 1
für Datei in *; Tun
if [ -f $file ]; Dann
newname=$(echo $file | tr ‚A-Z‘ ‚a-z‘)
[ $file != $newname ] && mv $file $newname
Sei
Erledigt
Erläuterung:
- #!/bin/bash : Dies ist der Knaller, der angibt, dass das Skript mithilfe der Bash-Shell interpretiert werden soll.
- Verzeichnis=$1″ : Diese Zeile weist das erste Befehlszeilenargument dem Variablenverzeichnis zu.
- if [ -z $directory ]; Dann : Diese Zeile prüft, ob die Verzeichnisvariable leer ist (kein Argument angegeben, wenn das Skript ausgeführt wird).
- Echo-Nutzung: $0 : Wenn das Verzeichnis leer ist, gibt diese Zeile eine Nutzungsmeldung mit dem Namen des Skripts ($0) aus.
- Ausgang 1 : Diese Zeile beendet das Skript mit dem Exit-Code 1, was darauf hinweist, dass ein Fehler aufgetreten ist.
- F i: Dies markiert das Ende der ersten if-Anweisung.
- Wenn [ ! -d $Verzeichnis ]; Dann : Diese Zeile prüft, ob das angegebene Verzeichnis nicht existiert (-d testet ein Verzeichnis).
- echo Fehler: „$directory“ ist kein gültiges Verzeichnis. : Wenn das angegebene Verzeichnis nicht existiert, gibt diese Zeile eine Fehlermeldung aus.
- Ausgang 1 : Beendet das Skript mit dem Exit-Code 1.
- Sei : Markiert das Ende der zweiten if-Anweisung.
- cd $verzeichnis || Ausgang 1 : Ändert das aktuelle Arbeitsverzeichnis in das angegebene Verzeichnis. Wenn der Verzeichniswechsel fehlschlägt (z. B. Verzeichnis nicht vorhanden), wird das Skript mit einem Fehlercode beendet.
- für Datei in *; Tun: ICH für Datei in *; Tun: löst eine Schleife aus, die alle Elemente im aktuellen Verzeichnis durchläuft (* entspricht allen Dateinamen).
- if [ -f $file ]; Dann : Überprüft, ob das aktuelle Schleifeniterationselement eine reguläre Datei ist (-f testet auf eine reguläre Datei).
- newname=$(echo $file | tr ‚A-Z‘ ‚a-z‘) : Wandelt den aktuellen Dateinamen ($file) mit dem Befehl tr in Kleinbuchstaben um und speichert das Ergebnis in der Variablen newname.
- [ $file != $newname ] && mv $file $newname : Vergleicht den ursprünglichen Dateinamen mit dem neuen Dateinamen in Kleinbuchstaben. Wenn sie unterschiedlich sind, wird die Datei mit dem Befehl mv umbenannt.
- Sei : Markiert das Ende der inneren if-Anweisung.
- Erledigt : Markiert das Ende der Schleife.

Notiz : Wir müssen beim Ausführen des Skripts ein Verzeichnis als Argument angeben. Hier haben wir den Pfad des aktuellen Verzeichnisses home/jayeshkumar/test verwendet
27) Wie können Sie arithmetische Operationen innerhalb eines Shell-Skripts verwenden?
Arithmetische Operationen können innerhalb eines Shell-Skripts mithilfe verschiedener integrierter Methoden ausgeführt werden. Die Shell bietet Mechanismen für einfache arithmetische Berechnungen mithilfe der arithmetischen Erweiterung wie:
- Arithmetische Erweiterung ($((…)))
- Verwenden des expr-Befehls
- Verwenden des let-Befehls
Hier ist unser Shell-Skript, das alle drei Methoden für arithmetische Operationen erklärt.
#!/bin/bash
num1=10
num2=5
#Arithmetische Erweiterung ($((…)))
Ergebnis=$((num1 + num2))
echo Summe: $result
#Verwenden des expr-Befehls
sum=$(expr $num1 + $num2)
echo Summe: $sum
#Verwenden des let-Befehls
sei sum = num1 + num2
echo Summe: $sum
Erläuterung:
- `#!/bin/bash` : Dies ist der Knaller, der angibt, dass das Skript mithilfe der Bash-Shell interpretiert werden soll.
- `num1=10` und ` num2=5` : Diese Zeilen weisen den Variablen ` die Werte 10 und 5 zu num1 ` und ` num2 ` bzw.
- `#Arithmetische Erweiterung ($((…)))` : Dies ist ein Kommentar, der den Anfang des Abschnitts angibt, der die arithmetische Erweiterung demonstriert.
- `result=$((num1 + num2))` : Diese Zeile verwendet eine arithmetische Erweiterung, um die Summe von ` zu berechnen num1 ` und ` num2 ` und speichert das Ergebnis im ` Ergebnis ` variabel.
- „echo Summe: $result“. : Diese Zeile gibt die berechnete Summe unter Verwendung des im ` gespeicherten Werts aus Ergebnis ` variabel.
- `#Verwenden des expr-Befehls` : Dies ist ein Kommentar, der den Anfang des Abschnitts angibt, der die Verwendung des „`“ demonstriert Ausdruck ` Befehl für arithmetische Operationen.
- `sum=$(expr $num1 + $num2)` : Diese Zeile verwendet das ` Ausdruck ` Befehl zur Berechnung der Summe von ` num1 ` und ` num2 ` und speichert das Ergebnis im ` Summe ` variabel. Beachten Sie, dass das ` Ausdruck Der Befehl ` erfordert Leerzeichen um die Operatoren.
- „Echo-Summe: $sum“. : Diese Zeile gibt die berechnete Summe unter Verwendung des im ` gespeicherten Werts aus Summe ` variabel.
- `#Verwenden des let-Befehls` : Dies ist ein Kommentar, der den Anfang des Abschnitts angibt, der die Verwendung des „`“ demonstriert lassen ` Befehl für arithmetische Operationen.
- `Lass Summe = num1 + num2″` : Diese Zeile verwendet das ` lassen ` Befehl zur Berechnung der Summe von ` num1 ` und ` num2 ` und weist das Ergebnis dem ` zu Summe ` variabel. Das ` lassen Für den Befehl ` sind keine Leerzeichen um die Operatoren erforderlich.
- „Echo-Summe: $sum“. : Diese Zeile gibt die berechnete Summe unter Verwendung des im ` gespeicherten Werts aus Summe ` variabel.

Arithmetik
28) Erstellen Sie ein Skript, das prüft, ob ein Netzwerkhost erreichbar ist.
Hier ist ein einfaches Shell-Skript, das mithilfe des Ping-Befehls prüft, ob ein Netzwerkhost erreichbar ist:
#!/bin/bash
host=$1″
if [ -z $host ]; Dann
Echo-Nutzung: $0
Ausgang 1
Sei
ping -c 4 $host
wenn [ $? -eq 0 ]; Dann
echo $host ist erreichbar.
anders
echo $host ist nicht erreichbar.
Sei
Erläuterung:
- Es nimmt einen Hostnamen oder eine IP-Adresse als Argument und prüft, ob das Argument angegeben wird.
- Wenn kein Argument angegeben wird, wird eine Nutzungsmeldung angezeigt und der Vorgang beendet.
- Es verwendet den Ping-Befehl mit der Option -c 4, um vier ICMP-Echo-Anfragen an den angegebenen Host zu senden.
- Nachdem der Ping-Befehl ausgeführt wurde, prüft er den Exit-Status ($?). Wenn der Exit-Status 0 ist, bedeutet dies, dass der Host erreichbar ist und das Skript eine Erfolgsmeldung ausgibt. Andernfalls wird eine Fehlermeldung ausgegeben.

Notiz : Wir müssen beim Ausführen des Skripts einen Hostnamen als Argument angeben. Hier haben wir google.com verwendet
29) Schreiben Sie ein Shell-Skript, um das größte Element in einem Array zu finden:
Hier ist ein Shell-Skript, um das größte Element in einem Array zu finden.
#!/bin/bash
# Deklarieren Sie ein Array
array=(3 56 24 89 67)
# Initialisieren Sie eine Variable, um den Maximalwert zu speichern, beginnend mit dem ersten Element
max=${array[0]}
# Durch das Array iterieren
für num in ${array[@]}; Tun
# Vergleichen Sie jedes Element mit dem aktuellen Maximum
if ((num> max)); Dann
max=$num
Sei
Erledigt
# Drucken Sie den Maximalwert aus
echo Das maximale Element im Array ist: $max
Erläuterung:
- ` #!/bin/bash `: Die Shebang-Zeile gibt an, dass das Skript mit der Bash-Shell interpretiert werden soll.
- ` array=(3 56 24 89 67) `: Das Array wird deklariert und mit Werten initialisiert.
- ` max=${array[0]} `: `max` wird mit dem ersten Element des Arrays initialisiert.
- ` für num in ${array[@]}; Tun „: Eine „for“-Schleife wird verwendet, um die Elemente des Arrays zu durchlaufen.
- ` if ((num> max)); Dann „: Eine „if“-Anweisung prüft, ob das aktuelle Element „num“ größer als das aktuelle Maximum „max“ ist.
- ` max=$num`: If`num ` ist größer als `max`, `max` wird mit dem Wert von num aktualisiert.
- ` Erledigt `: Die `for`-Schleife ist geschlossen.
- ` echo Das maximale Element im Array ist: $max `: Abschließend gibt das Skript den im Array gefundenen Maximalwert aus.

größte Zahl
30) Schreiben Sie ein Skript, um die Summe der Elemente in einem Array zu berechnen.
#!/bin/bash
# Deklarieren Sie ein Array
array=(1 65 22 19 94)
# Initialisieren Sie eine Variable, um die Summe zu speichern
Summe=0
# Durchlaufen Sie das Array und fügen Sie jedes Element zur Summe hinzu
für num in ${array[@]}; Tun
am=$((am + am))
Erledigt
# Drucken Sie die Summe aus
echo Die Summe der Elemente im Array ist: $sum
Erläuterung:
` #!/bin/bash `: Die Shebang-Zeile gibt an, dass das Skript mit der Bash-Shell interpretiert werden soll.
` array=(1 65 22 19 94) `: Das Array wird deklariert und mit Werten initialisiert.
` Summe=0 `:` Summe ` wird auf Null initialisiert, um die Summe der Elemente zu speichern.
` für num in ${array[@]}; Tun `: A` für Die Schleife wird verwendet, um die Elemente des Arrays zu durchlaufen.
` am=$((am + am)) `: Innerhalb der Schleife jedes Element ` Auf eins ` wird dem ` hinzugefügt Summe ` variabel.
` Erledigt `: Das ` für ` Schleife ist geschlossen.
„echo Die Summe der Elemente im Array ist: $sum“: Schließlich gibt das Skript die Summe aller Elemente im Array aus.

Summe der Elemente
Erfahren Sie mehr über Shell-Skripte
Abschluss
Wir alle wissen, dass Shell-Skripte sehr nützlich sind, um die Arbeitsproduktivität zu steigern und auch Zeit zu sparen. In diesem Artikel haben wir es also behandelt 30 sehr nützliche und am meisten betrügerische Beispiele für Shell-Skripte . Wir hoffen, dass diese vollständige Anleitung zum Beispiel für Shell-Skripte Ihnen hilft, alles über die Shell-Skripte zu verstehen.
: Wenn das Verzeichnis leer ist, gibt diese Zeile eine Nutzungsmeldung mit dem Namen des Skripts (Bei allen Linux-Distributionen ist das Shell-Skript wie ein Zauberstab, der den Prozess automatisiert, Benutzern Zeit spart und die Produktivität steigert. Dieses Tutorial zur SOLL-Skripterstellung stellt Ihnen mehr als 25 SOLL-Skripting-Beispiele vor.
Aber bevor wir zum Thema übergehen Shell-Scripting Beispiele: Lassen Sie uns Shell-Skripte und die tatsächlichen Anwendungsfälle von Shell-Skripten verstehen.
Was ist Shell-Skript?
Nun, die Schale ist eine CLI ( Befehlszeileninterpreter ), das in einem Textfenster ausgeführt wird, in dem Benutzer Shell-Befehle verwalten und ausführen können. Andererseits wird der Prozess des Schreibens einer Reihe von Befehlen, die auf einem Linux-System ausgeführt werden sollen. Eine Datei, die solche Anweisungen enthält, wird als Bash-Skript bezeichnet.
Verwendung von Shell-Skripten
Im Folgenden sind einige häufige Verwendungszwecke von Shell Script aufgeführt:
- Aufgabenautomatisierung – Es kann verwendet werden, um sich wiederholende Aufgaben wie regelmäßige Backups und Softwareinstallationsaufgaben zu automatisieren.
- Anpassung - Man kann Shell-Skripte verwenden, um seine Befehlszeilenumgebung zu entwerfen und seine Aufgabe je nach Bedarf einfach auszuführen.
- Dokumentenverwaltung - Die Shell-Skripte können auch zum Verwalten und Bearbeiten von Dateien und Verzeichnissen verwendet werden, beispielsweise zum Verschieben, Kopieren, Umbenennen oder Löschen von Dateien.
Beispiele für Shell-Skripte unter Linux
1) Was bedeutet das Shebang (#!) am Anfang eines Shell-Skripts?
Der Mist (#!) am Anfang eines Skripts gibt den Interpreter an, der zum Ausführen des Skripts verwendet werden soll. Es teilt dem System mit, welche Shell oder welcher Interpreter die Befehle des Skripts interpretieren soll.
Zum Beispiel: Angenommen, wir haben ein Skript mit dem Namen myscript.sh geschrieben in der Bash-Shell:

Mist
In diesem Beispiel:
- Das #!/bin/bash am Anfang des Skripts gibt an, dass das Skript mithilfe der Bash-Shell interpretiert werden soll.
- Die Echo-Befehle werden zum Drucken von Nachrichten an das Terminal verwendet.
2) Wie führt man ein Shell-Skript über die Befehlszeile aus?
Um ein Shell-Skript über die Befehlszeile auszuführen, müssen wir die folgenden Schritte ausführen:
- Stellen Sie sicher, dass die Skriptdatei über ausführbare Berechtigungen verfügt chmod-Befehl :
chmod +x myscript.sh>
- Führen Sie das Skript unter Verwendung seines Dateinamens aus:
./myscript.sh>
Hier muss ersetzt werden myscrtipt.sh mit Ihrem Skriptnamen.
3) Schreiben Sie ein Shell-Skript, das techcodeview.com auf dem Terminal ausgibt.
Erstellen Sie einen Skriptnamen „myscript.sh“ (wir verwenden „ Weil ` Editor, Sie können einen beliebigen Editor auswählen)
vim myscript.sh>
#!/bin/bash
# Dieses Skript druckt techcodeview.com auf dem Terminal
echo techcodeview.com

Namen drucken
Wir machen unser Skript mit „chmod +x“ ausführbar, führen es dann mit „./myscipt.sh“ aus und erhalten die gewünschte Ausgabe techcodeview.com.
4) Erklären Sie den Zweck des Echo-Befehls beim Shell-Scripting.
Der Echo-Befehl dient der Anzeige von Texten oder Variablen auf dem Terminal. Es wird häufig zum Drucken von Nachrichten, Variablenwerten und zum Generieren von Programmausgaben verwendet.

Echo-Befehl
In diesem Beispiel haben wir „echo“ direkt auf dem Terminal ausgeführt, da es innerhalb des Shell-Skripts genauso funktioniert.
5) Wie kann man einer Variablen in einem Shell-Skript einen Wert zuweisen?
Variablen werden Werte mit dem Zuweisungsoperator = zugewiesen.
Zum Beispiel:
#!/bin/bash
# Einer Variablen einen Wert zuweisen
Name=Jayesh
Alter=21
echo $name $age
Erläuterung:
- Der Namensvariablen wird der Wert Jayesh zugewiesen.
- Der Altersvariable wird der Wert 21 zugewiesen.
- echo wird zum Drucken verwendet und `$name` `$age` wird verwendet, um den in den Variablen gespeicherten Wert aufzurufen.

6) Schreiben Sie ein Shell-Skript, das den Namen eines Benutzers als Eingabe verwendet und ihn begrüßt.
Erstellen Sie einen Skriptnamen „example.sh“.
#!/bin/bash
# Fragen Sie den Benutzer nach seinem Namen
echo Wie heißt du?
Namen lesen
# Begrüßen Sie den Benutzer
echo Hallo, $name! Freut mich, Sie kennenzulernen.
Erläuterung:
- #!/bin/bash: Das ist die Shebang-Zeile. Es weist das System an, den Bash-Interpreter zum Ausführen des Skripts zu verwenden.
- # Fragen Sie den Benutzer nach seinem Namen: Dies ist ein Kommentar. Es bietet Kontext zum kommenden Code. Kommentare werden vom Interpreter ignoriert.
- echo Wie heißt du?: Der echo-Befehl wird verwendet, um den Text in doppelten Anführungszeichen auf dem Terminal anzuzeigen.
- Lesename: Der Lesebefehl wartet auf die Eingabe von Text durch den Benutzer und speichert ihn im Variablennamen.
- echo Hallo, $name! Freut mich, Sie kennenzulernen.: Diese Zeile verwendet den echo-Befehl, um eine Begrüßungsnachricht zu drucken, die den Wert der Namensvariablen enthält, der aus der Benutzereingabe erfasst wurde.

7) Wie fügt man einem Shell-Skript Kommentare hinzu?
Kommentare im Shell-Scripting werden verwendet, um Erklärungen oder Kontext zum Code bereitzustellen. Sie werden vom Interpreter ignoriert und sind nur für Menschen gedacht, die das Skript lesen. Mit dem #-Symbol können Sie Kommentare hinzufügen.
#!/bin/bash
# Dies ist ein Kommentar, der den Zweck des Skripts erläutert
echo gfg
8) Erstellen Sie ein Shell-Skript, das prüft, ob eine Datei im aktuellen Verzeichnis vorhanden ist.
Hier ist ein Skript, das prüft, ob eine Datei namens example.txt im aktuellen Verzeichnis vorhanden ist:
#!/bin/bash
file=example.txt
# Überprüfen Sie, ob die Datei vorhanden ist
if [ -e $file ]; Dann
echo Datei existiert: $file
anders
echo Datei nicht gefunden: $file
Sei
Erläuterung:
- #!/bin/bash: Dies ist die Shebang-Zeile, die den Interpreter (/bin/bash) angibt, der zum Ausführen des Skripts verwendet werden soll.
- file=example.txt: Diese Zeile definiert die Variablendatei und weist ihr den Wert example.txt zu. Sie können dies durch den Namen der Datei ersetzen, nach der Sie suchen möchten.
- if [ -e $file ]; then: Diese Zeile beginnt eine if-Anweisung. Die Bedingung [ -e $file ] prüft, ob die durch den Wert der Dateivariablen angegebene Datei existiert. Das Flag -e wird verwendet, um zu prüfen, ob eine Datei vorhanden ist.
- echo Datei existiert: $datei: Wenn die Bedingung wahr ist (d. h. die Datei existiert), gibt diese Zeile eine Meldung aus, die angibt, dass die Datei existiert, zusammen mit dem Namen der Datei.
- else: Wenn die Bedingung falsch ist (d. h. die Datei existiert nicht), führt das Skript den Code unter dem else-Zweig aus.
- echo Datei nicht gefunden: $datei: Diese Zeile gibt eine Fehlermeldung aus, die angibt, dass die angegebene Datei nicht gefunden wurde, zusammen mit dem Namen der Datei.
- fi: Diese Zeile markiert das Ende der if-Anweisung.

Datei wird gefunden
9) Was ist der Unterschied zwischen einfachen Anführungszeichen (‘) und doppelten Anführungszeichen () beim Shell-Scripting?
Einfache Anführungszeichen (‘) und doppelte Anführungszeichen () werden zum Einschließen von Zeichenfolgen in Shell-Skripten verwendet, haben jedoch unterschiedliche Verhaltensweisen:
- Einfache Anführungszeichen: Alles zwischen einfachen Anführungszeichen wird als Literalzeichenfolge behandelt. Variablennamen und die meisten Sonderzeichen werden nicht erweitert.
- Doppelte Anführungszeichen: Variablen und bestimmte Sonderzeichen in doppelten Anführungszeichen werden erweitert. Der Inhalt unterliegt der Variablenersetzung und der Befehlsersetzung.
#!/bin/bash
abcd=Hallo
echo ‚$abcd‘ # Ausgabe: $abcd
echo $abcd # Ausgabe: Hallo
10) Wie können Sie Befehlszeilenargumente in einem Shell-Skript verwenden?
Kommandozeilenargumente sind Werte, die einem Skript bei seiner Ausführung bereitgestellt werden. Auf sie kann innerhalb des Skripts über spezielle Variablen wie $1, $2 usw. zugegriffen werden, wobei $1 das erste Argument, $2 das zweite Argument usw. darstellt.
Zum Beispiel: Wenn unser Skriptname in „example.sh“ steht
#!/bin/bash
echo Skriptname: $0
echo Erstes Argument: $1
echo Zweites Argument: $2
Wenn wir das Skript mit „.example.sh hello_1 hello_2“ ausführen, wird Folgendes ausgegeben:

CLI-Argumente
11) Wie verwenden Sie die for-Schleife, um eine Liste von Werten zu durchlaufen?
Erstellen Sie einen Skriptnamen „example.sh“.
#!/bin/bash
Früchte = (Apfel, Banane, Kirsche, Dattel)
für Obst in ${fruits[@]}; Tun
echo Aktuelle Frucht: $fruit
Erledigt
Erläuterung:
Die Zeile „fruits=“ erstellt ein Array mit dem Namen „Früchte“ mit vier Elementen: Apfel, Banane, Kirsche und Dattel.
- für Obst in ${fruits[@]}; do: Diese Zeile startet eine for-Schleife. Hier ist, was jeder Teil bedeutet:
- für Obst: Dies deklariert eine Schleifenvariable namens Obst. In jeder Iteration der Schleife speichert Fruit den Wert des aktuellen Elements aus dem Fruit-Array.
- ${fruits[@]}: Dies ist eine Array-Erweiterung, die alle Elemente aus dem Fruit-Array übernimmt. Die ${…}-Syntax stellt sicher, dass jedes Element als separates Element behandelt wird.
- do: Dieses Schlüsselwort markiert den Anfang des Schleifenkörpers.
- echo Aktuelle Frucht: $fruit: Innerhalb der Schleife verwendet diese Zeile den Echo-Befehl, um den aktuellen Wert der Schleifenvariablen Frucht anzuzeigen. Für jede Frucht im Array wird eine Meldung wie Aktuelle Frucht: Apfel ausgegeben.
- done: Dieses Schlüsselwort markiert das Ende des Schleifenkörpers. Es teilt dem Skript mit, dass die Schleife beendet ist.

for-Schleife
12) Schreiben Sie ein Shell-Skript, das mithilfe einer Schleife die Summe der ganzen Zahlen von 1 bis N berechnet.
Erstellen Sie einen Skriptnamen „example.sh“.
#!/bin/bash
echo Geben Sie eine Zahl (N) ein:
lies N
Summe=0
for (( i=1; i<=$N; i++ )); Tun
sum=$((sum + i))
Erledigt
echo Die Summe der ganzen Zahlen von 1 bis $N ist: $sum
Erläuterung:
Das Skript fordert Sie zunächst dazu auf, mithilfe von „read“ eine Zahl (N) einzugeben. Diese Zahl bestimmt, wie oft die Schleife ausgeführt wird.
- Die Variablensumme wird auf 0 initialisiert. Diese Variable verfolgt die Summe der Ganzzahlen.
- Die for-Schleife beginnt mit for (( i=1; i<=$N; i++ )). Diese Schleifenstruktur wird verwendet, um eine Reihe von Aktionen eine bestimmte Anzahl von Malen zu wiederholen, in diesem Fall von 1 bis zum Wert N.
- Innerhalb der Schleife passieren folgende Dinge:
- i=1 setzt die Schleifenvariable i zu Beginn jeder Iteration auf 1.
- Die Schleifenbedingung i<=$N prüft, ob i immer noch kleiner oder gleich der angegebenen Zahl N ist.
- Wenn die Bedingung wahr ist, wird der Schleifenkörper ausgeführt.
- sum=$((sum + i)) berechnet den neuen Wert von sum, indem der aktuelle Wert von i dazu addiert wird. Dadurch werden die ganzen Zahlen von 1 bis zum aktuellen i-Wert addiert.
- Nach jeder Iteration erhöht i++ den Wert von i um 1.
- Die Schleife läuft weiter, bis die Bedingung i<=$N falsch wird (wenn i größer als N wird).
- Sobald die Schleife beendet ist, zeigt das Skript die Summe der ganzen Zahlen von 1 bis zur eingegebenen Zahl N an.

13) Erstellen Sie ein Skript, das nach einem bestimmten Wort in einer Datei sucht und dessen Vorkommen zählt.
Erstellen Sie einen Skriptnamen „word_count.sh“.
#!/bin/bash
echo Geben Sie das Wort ein, nach dem gesucht werden soll:
Zielwort lesen
echo Geben Sie den Dateinamen ein:
Dateinamen lesen
count=$(grep -o -w $target_word $filename | wc -l)
echo Das Wort „$target_word“ kommt $count mal in „$filename“ vor.
Erläuterung:
- echo Geben Sie das zu suchende Wort ein:: In dieser Zeile wird eine Meldung angezeigt, in der der Benutzer aufgefordert wird, ein Wort einzugeben, nach dem er in einer Datei suchen möchte.
- read target_word: Diese Zeile liest die vom Benutzer bereitgestellten Eingaben und speichert sie in einer Variablen namens target_word.
- echo Geben Sie den Dateinamen ein:: In dieser Zeile wird eine Meldung angezeigt, in der der Benutzer aufgefordert wird, den Namen der Datei einzugeben, in der er suchen möchte.
- Dateinamen lesen: Diese Zeile liest die vom Benutzer bereitgestellten Eingaben und speichert sie in einer Variablen namens Dateiname.
- count=$(grep -o -w $target_word $filename | wc -l): Diese Zeile erledigt die Hauptarbeit des Skripts. Lassen Sie es uns weiter aufschlüsseln:
- grep -o -w $target_word $filename: Dieser Teil des Befehls sucht nach Vorkommen des target_word im angegebenen Dateinamen. Die Optionen -o und -w stellen sicher, dass nur Ganzwortübereinstimmungen gezählt werden.
- |: Dies ist eine Pipe, die die Ausgabe des vorherigen Befehls übernimmt und als Eingabe an den nächsten Befehl sendet.
- wc -l: Dieser Teil des Befehls verwendet den Befehl wc, um die Anzahl der Zeilen in der Eingabe zu zählen. Die Option -l zählt gezielt die Zeilen.
- Der gesamte Befehl berechnet die Anzahl der Vorkommen des Zielworts in der Datei und weist diese Anzahl der Variablen coun zu

14) Erklären Sie die Unterschiede zwischen Standardausgabe (stdout) und Standardfehler (stderr).
Der Hauptunterschied zwischen Standardausgabe (stdout) und Standardfehler (stderr) ist wie folgt:
- Standardausgabe (stdout): Dies ist der Standardausgabestream, in den die reguläre Ausgabe eines Befehls geht. Es wird standardmäßig auf dem Terminal angezeigt. Sie können es mit> in eine Datei umleiten.
- Standardfehler (stderr): Dies ist der Ausgabestream für Fehlermeldungen und Warnungen. Es wird standardmäßig auch auf dem Terminal angezeigt. Sie können es mit 2> in eine Datei umleiten.
15) Erklären Sie das Konzept bedingter Anweisungen im Shell-Scripting.
Bedingte Anweisungen im Shell-Scripting ermöglichen es uns, Entscheidungen zu treffen und den Ablauf unseres Skripts auf der Grundlage bestimmter Bedingungen zu steuern. Sie ermöglichen unserem Skript, unterschiedliche Befehlssätze auszuführen, je nachdem, ob eine bestimmte Bedingung wahr oder falsch ist. Die primären bedingten Anweisungen beim Shell-Scripting sind die if-Anweisung, die elif-Anweisung (optional) und die else-Anweisung (optional).
Hier ist die Grundstruktur einer bedingten Anweisung im Shell-Scripting:
if [ Bedingung ]; Dann
# Befehle, die ausgeführt werden sollen, wenn die Bedingung wahr ist
elif [ another_condition ]; Dann
# Befehle, die ausgeführt werden sollen, wenn another_condition wahr ist (optional)
anders
# Befehle, die ausgeführt werden sollen, wenn keine der Bedingungen wahr ist (optional)
Sei
Erläuterung:
- [ Bedingung ] = Befehl, der die Bedingung auswertet und einen Exit-Status „wahr“ (0) oder „falsch“ (ungleich Null) zurückgibt.
- then = Es handelt sich um ein Schlüsselwort, das angibt, dass die darauf folgenden Befehle ausgeführt werden, wenn die Bedingung „true“ ergibt.
- elif = (Abkürzung für else if) Dies ist ein Abschnitt, der es uns ermöglicht, zusätzliche zu überprüfende Bedingungen anzugeben.
- else = es ist ein Abschnitt, der Befehle enthält, die ausgeführt werden, wenn keine der Bedingungen wahr ist.
- fi = Es ist ein Schlüsselwort, das das Ende des bedingten Blocks markiert.
16) Wie liest man Zeilen aus einer Datei in einem Shell-Skript?
Zu Zeilen lesen Aus einer Datei innerhalb eines Shell-Skripts können wir verschiedene Methoden verwenden, aber ein gängiger Ansatz ist die Verwendung einer While-Schleife in Kombination mit dem Lesebefehl. So können wir es machen:
#!/bin/bash
file=/home/jayeshkumar/jayesh.txt
# Überprüfen Sie, ob die Datei vorhanden ist
if [ -e $file ]; Dann
while IFS= read -r line; Tun
echo Zeile gelesen: $line
# Fügen Sie hier Ihre Verarbeitungslogik hinzu
erledigt <$file
anders
echo Datei nicht gefunden: $file
Sei
Erläuterung:
- #!/bin/bash: Dies ist die Shebang-Zeile, die den Interpreter (/bin/bash) angibt, der zum Ausführen des Skripts verwendet werden soll.
- file=/home/jayeshkumar/jayesh.txt: Diese Zeile definiert die Variablendatei und weist den vollständigen Pfad zur Datei jayesh.txt im Verzeichnis /home/jayeshkumar zu. Ändern Sie diesen Pfad so, dass er mit dem tatsächlichen Pfad der Datei übereinstimmt, die Sie lesen möchten.
- if [ -e $file ]; then: Diese Zeile beginnt eine if-Anweisung. Es prüft, ob die durch die Variable $file angegebene Datei existiert. Das Flag -e prüft, ob eine Datei vorhanden ist.
- while IFS= read -r line; do: Diese Zeile initiiert eine While-Schleife, die Zeilen aus der Datei liest.
- IFS=: Das IFS (Internal Field Separator) wird auf einen leeren Wert gesetzt, um führende und nachfolgende Leerzeichen beizubehalten.
- read -r line: Dies liest die aktuelle Zeile aus der Datei und speichert sie in der Variablen line.
- echo Zeile gelesen: $line: Diese Zeile gibt den Inhalt der Zeile aus, die aus der Datei gelesen wurde. Die Variable $line enthält den Inhalt der aktuellen Zeile.
- # Fügen Sie hier Ihre Verarbeitungslogik hinzu: Dies ist ein Platzhalterkommentar, in dem Sie Ihre eigene Logik zur Verarbeitung jeder Zeile hinzufügen können. Beispielsweise können Sie die Zeile analysieren, Informationen extrahieren oder bestimmte Aktionen basierend auf dem Inhalt ausführen.
- done <$file: Dies markiert das Ende der while-Schleife. Das < $file leitet den Inhalt der Datei um, damit er von der Schleife gelesen werden kann.
- else: Wenn die Datei nicht existiert (die Bedingung in der if-Anweisung ist falsch), führt das Skript den Code unter dem else-Zweig aus.
- echo Datei nicht gefunden: $file: Diese Zeile gibt eine Fehlermeldung aus, die angibt, dass die angegebene Datei nicht gefunden wurde.
- fi: Diese Zeile markiert das Ende der if-Anweisung.

Datei lesen
Hier haben wir „“ verwendet pwd ` Befehl, um den Pfad des aktuellen Verzeichnisses abzurufen.
17) Schreiben Sie eine Funktion in ein Shell-Skript, die die Fakultät einer bestimmten Zahl berechnet.
Hier ist das Skript, dasBerechnen Sie die Fakultäteiner gegebenen Zahl.
#!/bin/bash
# Definieren Sie eine Funktion zur Berechnung der Fakultät
berechne_faktorial() {
num=$1
Tatsache=1
for ((i=1; i<=num; i++)); Tun
fact=$((fact * i))
Erledigt
echo $fact
}
# Fordern Sie den Benutzer auf, eine Nummer einzugeben
echo Geben Sie eine Zahl ein:
lese input_num
# Rufen Sie die Funktion „calcure_factorial“ mit der Eingabenummer auf
factial_result=$(calculate_factorial $input_num)
# Zeigen Sie das faktorielle Ergebnis an
echo Factorial von $input_num ist: $factorial_result
Erläuterung:
- Das Skript beginnt mit der Shebang-Zeile #!/bin/bash, um den Interpreter anzugeben.
- berechne_faktorial() ist als Funktion definiert. Es benötigt ein Argument, num, das die Zahl ist, für die die Fakultät berechnet werden muss.
- Innerhalb der Funktion wird fact auf 1 initialisiert. Diese Variable speichert das Fakultätsergebnis.
- Die for-Schleife iteriert von 1 bis zur angegebenen Zahl (num). In jeder Iteration multipliziert es den aktuellen Wert von fact mit dem Schleifenindex i.
- Nach Abschluss der Schleife enthält die Faktenvariable die berechnete Fakultät.
- Das Skript fordert den Benutzer mit „read“ zur Eingabe einer Zahl auf.
- Die Funktion „calcure_factorial“ wird mit der vom Benutzer angegebenen Zahl aufgerufen und das Ergebnis wird in der Variablen „factorial_result“ gespeichert.
- Abschließend zeigt das Skript das berechnete Fakultätsergebnis an.

Fakultät
18) Wie gehen Sie mit Signalen wie Strg+C in einem Shell-Skript um?
In einem Shell-Skript können Sie Signale wie Strg+C (auch bekannt als SIGINT) mit dem Trap-Befehl verarbeiten. Strg+C generiert ein SIGINT-Signal, wenn der Benutzer es drückt, um das laufende Skript oder Programm zu unterbrechen. Mithilfe des Trap-Befehls können Sie Aktionen festlegen, die ausgeführt werden sollen, wenn ein bestimmtes Signal empfangen wird. So gehen Sie mit Signalen wie Strg+C in einem Shell-Skript um:
#!/bin/bash
Aufräumen() {
echo Skript unterbrochen. Bereinigung wird durchgeführt…
# Fügen Sie hier Ihre Bereinigungsaktionen hinzu
Ausgang 1
}
# Richten Sie eine Falle ein, um die Bereinigungsfunktion aufzurufen, wenn Strg+C (SIGINT) empfangen wird
Fallenbereinigung SIGINT
# Rest Ihres Skripts
echo Laufen…
Schlaf 10
echo Fertig.
Der Umgang mit Signalen ist wichtig, um Skripte robust zu machen und sicherzustellen, dass sie unerwartete Unterbrechungen ordnungsgemäß verarbeiten. Sie können die Bereinigungsfunktion an Ihre spezifischen Anforderungen anpassen, z. B. Dateien schließen, Prozesse stoppen oder Informationen protokollieren, bevor das Skript beendet wird.
Erläuterung:
- #!/bin/bash: Diese Shebang-Zeile gibt den Interpreter an, der zum Ausführen des Skripts verwendet werden soll.
- cleanup() { … }: Dies definiert eine Funktion namens cleanup. In diese Funktion können Sie alle Aktionen einschließen, die ausgeführt werden müssen, wenn das Skript unterbrochen wird, z. B. das Schließen von Dateien, das Freigeben von Ressourcen oder das Durchführen anderer Bereinigungsaufgaben.
- trap cleanup SIGINT: Der trap-Befehl wird zum Einrichten eines Signalhandlers verwendet. In diesem Fall wird angegeben, dass die Bereinigungsfunktion ausgeführt werden soll, wenn das SIGINT-Signal (Strg+C) empfangen wird.
- echo Running…, sleep 10, echo Finished.: Dies sind nur Beispielbefehle, um die Ausführung eines Skripts zu simulieren.

19) Erstellen Sie ein Skript, das nach doppelten Zeilen in einer Textdatei sucht und diese entfernt.
Hier ist unser Linux-Skript, in dem wir doppelte Zeilen aus einer Textdatei entfernen.
#!/bin/bash
input_file=input.txt
Ausgabedatei=Ausgabe.txt
$input_file | sortieren uniq> $output_file
echo Doppelte Zeilen erfolgreich entfernt.
Erläuterung:
- Das Skript beginnt mit einem Shebang (#!/bin/bash), der angibt, dass das Skript mithilfe der Bash-Shell interpretiert werden soll.
- Die Variable input_file wird auf den Namen der Eingabedatei gesetzt, die doppelte Zeilen enthält (ändern Sie diesen in Ihren tatsächlichen Namen der Eingabedatei).
- Die Variable „output_file“ wird auf den Namen der Ausgabedatei gesetzt, aus der die Duplikate entfernt werden (ändern Sie diesen in den gewünschten Namen der Ausgabedatei).
- Das Skript verwendet den Sortierbefehl, um die Zeilen in der Eingabedatei zu sortieren. Durch das Sortieren der Zeilen wird sichergestellt, dass doppelte Zeilen gruppiert werden.
- Die sortierten Zeilen werden dann durch den Befehl uniq geleitet, der aufeinanderfolgende doppelte Zeilen entfernt. Die Ausgabe dieses Prozesses wird in die Ausgabedatei umgeleitet.
- Nachdem die Duplikate entfernt wurden, gibt das Skript eine Erfolgsmeldung aus.

Entfernen doppelter Zeilen
Hier verwenden wir „ Katze ` um den Text in der Textdatei anzuzeigen.
20) Schreiben Sie ein Skript, das ein sicheres Zufallspasswort generiert.
Hier ist unser Skript zum Generieren eines sicheren Zufallspassworts.
#!/bin/bash
# Funktion zum Generieren eines zufälligen Passworts
generiere Passwort() {
tr -dc 'A-Za-z0-9!@#$%^&*()_+{}[]'
}
# Rufen Sie die Funktion auf und speichern Sie das generierte Passwort
passwort=$(generate_password)
echo Generiertes Passwort: $password
Hinweis: Der Benutzer kann die Länge seines Passworts entsprechend ändern, indem er die Zahl „12“ ersetzt.
Erläuterung:
- Das Skript beginnt mit einem Shebang (#!/bin/bash), der angibt, dass es mit der Bash-Shell interpretiert werden soll.
- Die Funktion „generate_password“ ist so definiert, dass sie ein zufälliges Passwort generiert. So funktioniert das:
- tr -dc 'A-Za-z0-9!@#$%^&*()_+{}[]'
- falten -w 12 unterteilt die gefilterten Zufallsdaten in Zeilen mit einer Breite von jeweils 12 Zeichen.
- head -n 1 wählt die erste Zeile aus und gibt uns effektiv eine zufällige Folge von Zeichen der Länge 12.
- Der Variable „password“ wird das Ergebnis des Aufrufs der Funktion „generate_password“ zugewiesen.
- Abschließend wird das generierte Passwort mittels Echo angezeigt.

21) Schreiben Sie ein Shell-Skript, das die Gesamtgröße aller Dateien in einem Verzeichnis berechnet.
Hier ist ein Shell-Skript zur Berechnung der Gesamtgröße aller Dateien in einem Verzeichnis.
#!/bin/bash
Verzeichnis=/Pfad/zu/Ihrem/Verzeichnis
total_size=$(du -csh $directory | grep total | awk ‚{print $1}‘)
echo Gesamtgröße der Dateien in $directory: $total_size
Erläuterung:
- Das Skript beginnt mit dem Befehl #!/bin/bash, der darauf hinweist, dass es mithilfe der Bash-Shell interpretiert werden soll.
- Die Verzeichnisvariable wird auf den Pfad des Verzeichnisses gesetzt, für das Sie die Gesamtdateigröße berechnen möchten. Ersetzen Sie /path/to/your/directory durch den tatsächlichen Pfad.
- Der Befehl du wird verwendet, um die Dateispeichernutzung abzuschätzen. Die verwendeten Optionen sind:
- -c: Erzeuge eine Gesamtsumme.
- -s: Zeigt nur die Gesamtgröße des angegebenen Verzeichnisses an.
- -h: Druckgrößen in einem für Menschen lesbaren Format (z. B. KB, MB, GB).
- Die Ausgabe von du wird an grep total weitergeleitet, um die Zeile herauszufiltern, die die Gesamtgröße enthält.
- awk „{print $1}“ wird verwendet, um das erste Feld (Gesamtgröße) aus der Zeile zu extrahieren.
- Die berechnete Gesamtgröße wird in der Variablen total_size gespeichert.
- Abschließend zeigt das Skript mithilfe von Echo die Gesamtgröße an.

Gesamtgröße der Dateien
Hier haben wir „“ verwendet pwd ` Befehl, um den aktuellen Verzeichnispfad anzuzeigen.
22) Erklären Sie den Unterschied zwischen if- und elif-Anweisungen beim Shell-Scripting.
| Besonderheit | `if`Staiftement | `elif`-Erklärung |
| Zweck | Erklären Sie den Unterschied zwischen if- und elif-Anweisungen beim Shell-Scripting. | Stellt alternative Bedingungen bereit, um zu überprüfen, ob die anfängliche If-Bedingung falsch ist. |
| Verwendung | Wird für den Anfangszustand verwendet. | Wird nach der anfänglichen if-Bedingung verwendet, um zusätzliche Bedingungen zu überprüfen. |
| Anzahl der Blöcke | Kann nur einen if-Block haben. | Kann mehrere elif-Blöcke haben, aber nur einen else-Block (optional). |
| Ausführung | Führt den mit der if-Anweisung verknüpften Codeblock aus, wenn die Bedingung wahr ist. Wenn die Bedingung falsch ist, wird der else-Block (falls vorhanden) ausgeführt (optional). | Überprüft jede Elif-Bedingung der Reihe nach. Wenn eine elif-Bedingung wahr ist, wird der entsprechende Codeblock ausgeführt und das Skript verlässt den gesamten bedingten Block. Wenn keine der elif-Bedingungen wahr ist, wird der else-Block (falls vorhanden) ausgeführt. |
| Verschachtelte Strukturen | Kann in anderen if-, elif- oder else-Blöcken verschachtelt werden. | Kann nicht in einem anderen elif-Block verschachtelt werden, kann aber in einem if- oder else-Block verwendet werden. |
Lassen Sie es uns anhand eines Beispiels verstehen.
#!/bin/bash
Zahl=5
if [ $number -gt 10 ]; Dann
echo $number ist größer als 10
anders
echo $number ist nicht größer als 10
Sei
Echo ——–
if [ $number -gt 10 ]; Dann
echo $number ist größer als 10
elif [ $number -eq 10 ]; Dann
echo $number ist gleich 10
anders
echo $number ist kleiner als 10
Sei
Erläuterung:
In diesem Beispiel prüft der erste if-Block, ob die Zahl größer als 10 ist. Wenn nicht, gibt er eine Meldung aus, die angibt, dass die Zahl nicht größer als 10 ist. Der zweite Block mit elif-Anweisungen prüft nacheinander mehrere Bedingungen, bis eine davon wahr ist. Da in diesem Fall der Wert von number 5 ist, lautet die Ausgabe:

if_elif Unterschied
23) Wie nutzt man eine While-Schleife, um Befehle wiederholt auszuführen?
Bei der Shell-Skripterstellung wird eine While-Schleife verwendet, um eine Reihe von Befehlen wiederholt auszuführen, solange eine bestimmte Bedingung erfüllt ist. Die Schleife führt die Befehle so lange aus, bis die Bedingung falsch wird.
Hier ist die grundlegende Syntax einer While-Schleife:
while [ Bedingung ]; Tun
# Auszuführende Befehle
Erledigt
Erläuterung:
- Die „while“-Schleife beginnt mit dem Schlüsselwort „while“, gefolgt von einer in eckigen Klammern eingeschlossenen Bedingung „[ ]“.
- Der Schleifenkörper, der die auszuführenden Befehle enthält, ist in die Schlüsselwörter „do“ und „done“ eingeschlossen.
- Die Schleife prüft zunächst die Bedingung. Wenn die Bedingung wahr ist, werden die Befehle im Schleifenkörper ausgeführt. Nachdem der Schleifenkörper ausgeführt wurde, wird die Bedingung erneut überprüft und der Vorgang wiederholt, bis die Bedingung falsch wird.
Beispiel: Wenn wir Zahlen von 1 bis 5 drucken möchten
#!/bin/bash
Zähler=1
while [ $counter -le 5 ]; Tun
Echo-Nummer: $counter
counter=$((counter + 1))
Erledigt
Erläuterung:
- Die Zählervariable wird auf 1 gesetzt.
- Die while-Schleife prüft, ob der Wert von counter kleiner oder gleich 5 ist. Solange diese Bedingung erfüllt ist, wird die Schleife weiter ausgeführt.
- Innerhalb der Schleife wird der aktuelle Wert des Zählers mithilfe von Echo ausgegeben.
- Der Zähler wird mit dem Ausdruck $((Zähler + 1)) um 1 erhöht.

while-Schleife
24) Erstellen Sie ein Shell-Skript, das alle leeren Dateien in einem Verzeichnis findet und auflistet.
Shell-Skript, mit dem Sie mithilfe der Befehle „find“ und „stat“ alle leeren Dateien in einem Verzeichnis suchen und auflisten können:
#!/bin/bash
Verzeichnis=$1″
if [ -z $directory ]; Dann
Echo-Nutzung: $0
Ausgang 1
Sei
Wenn [ ! -d $Verzeichnis ]; Dann
echo Fehler: „$directory“ ist kein gültiges Verzeichnis.
Ausgang 1
Sei
echo Leere Dateien im $directory:
finde $directory -type f -empty
Erläuterung:
- ` #!/bin/bash „: Dies wird als Shebang bezeichnet und weist das Betriebssystem an, die Bash-Shell zum Interpretieren und Ausführen des Skripts zu verwenden.
- ` Verzeichnis=$1″ `: Diese Zeile weist der Variablen ` das erste Befehlszeilenargument (bezeichnet mit $1) zu Verzeichnis `.
- ` if [ -z $directory ]; Dann `: Diese Zeile startet eine if-Anweisung, die prüft, ob das ` Verzeichnis ` Variable ist leer (-z testet auf eine leere Zeichenfolge).
- ` Echo-Nutzung: $0 `: Wenn das Verzeichnis leer ist, gibt diese Zeile eine Nutzungsmeldung aus, wobei ` 0 $ ` steht für den Namen des Skripts.
- ` Ausgang 1 `: Diese Zeile beendet das Skript mit dem Exit-Code ` 1 `, was auf einen Fehler hinweist.
- ` Sei `: Diese Zeile markiert das Ende des ` Wenn ` Aussage.
- ` Wenn [ ! -d $Verzeichnis ]; Dann `: Dies startet eine weitere if-Anweisung, um zu prüfen, ob das angegebene Verzeichnis existiert (` -D ` testet für ein Verzeichnis).
- ` echo Fehler: „$directory“ ist kein gültiges Verzeichnis. `: Wenn das angegebene Verzeichnis nicht existiert, gibt diese Zeile eine Fehlermeldung aus.
- ` Ausgang 1 `: Beendet das Skript mit dem Exit-Code ` 1 `.
- ` Sei `: Markiert das Ende des zweiten ` wenn` Stellungnahme.
- ` echo Leere Dateien im $directory: `: Wenn bisher alles gültig ist, gibt diese Zeile eine Meldung aus, die angibt, dass das Skript leere Dateien im angegebenen Verzeichnis auflistet.
- ` finde $directory -type f -empty `: Diese Zeile verwendet das ` finden ` Befehl zum Suchen nach leeren Dateien (` -leer `) vom Typ reguläre Dateien (` -Typ f `) im angegebenen Verzeichnis. Anschließend werden diese leeren Dateien aufgelistet.

Leere Dateien finden
Notiz : Wir müssen beim Ausführen des Skripts ein Verzeichnis als Argument angeben. Hier haben wir den Pfad des aktuellen Verzeichnisses home/jayeshkumar/ verwendet
25) Was ist der Zweck des Lesebefehls beim Shell-Scripting?
Mit dem Lesebefehl beim Shell-Scripting fragt das Skript Sie nach Informationen. Es ist, als würde Ihnen ein Computer eine Frage stellen und auf Ihre Antwort warten. Dies ist nützlich für Skripte, bei denen Sie etwas eingeben müssen oder wenn das Skript mit Informationen aus Dateien arbeiten muss. Der Lesebefehl hilft dem Skript, anzuhalten und auf Ihre Eingabe zu warten. Anschließend kann es diese Informationen verwenden, um weitere Aufgaben im Skript auszuführen.
Syntax des Lesebefehls:
read variable_name>
Beispiel : Wenn wir den Namen als Eingabe vom Benutzer verwenden möchten, um ihn zu drucken.
#!/bin/bash
echo Bitte geben Sie Ihren Namen ein:
Namen lesen
echo Hallo, $name!

lies nam
Zusammenfassend lässt sich sagen, dass der Lesebefehl verwendet wird, um Benutzereingaben oder Daten aus Dateien in Shell-Skripten zu erfassen, wodurch die Skripte interaktiver und vielseitiger werden.
26) Schreiben Sie ein Shell-Skript, das alle Dateinamen in einem Verzeichnis in Kleinbuchstaben umwandelt.
Hier ist ein Shell-Skript, das alle Dateinamen in einem Verzeichnis in Kleinbuchstaben umwandelt.
#!/bin/bash
Verzeichnis=$1″
if [ -z $directory ]; Dann
Echo-Nutzung: $0
Ausgang 1
Sei
Wenn [ ! -d $Verzeichnis ]; Dann
echo Fehler: „$directory“ ist kein gültiges Verzeichnis.
Ausgang 1
Sei
cd $verzeichnis || Ausgang 1
für Datei in *; Tun
if [ -f $file ]; Dann
newname=$(echo $file | tr ‚A-Z‘ ‚a-z‘)
[ $file != $newname ] && mv $file $newname
Sei
Erledigt
Erläuterung:
- #!/bin/bash : Dies ist der Knaller, der angibt, dass das Skript mithilfe der Bash-Shell interpretiert werden soll.
- Verzeichnis=$1″ : Diese Zeile weist das erste Befehlszeilenargument dem Variablenverzeichnis zu.
- if [ -z $directory ]; Dann : Diese Zeile prüft, ob die Verzeichnisvariable leer ist (kein Argument angegeben, wenn das Skript ausgeführt wird).
- Echo-Nutzung: $0 : Wenn das Verzeichnis leer ist, gibt diese Zeile eine Nutzungsmeldung mit dem Namen des Skripts ($0) aus.
- Ausgang 1 : Diese Zeile beendet das Skript mit dem Exit-Code 1, was darauf hinweist, dass ein Fehler aufgetreten ist.
- F i: Dies markiert das Ende der ersten if-Anweisung.
- Wenn [ ! -d $Verzeichnis ]; Dann : Diese Zeile prüft, ob das angegebene Verzeichnis nicht existiert (-d testet ein Verzeichnis).
- echo Fehler: „$directory“ ist kein gültiges Verzeichnis. : Wenn das angegebene Verzeichnis nicht existiert, gibt diese Zeile eine Fehlermeldung aus.
- Ausgang 1 : Beendet das Skript mit dem Exit-Code 1.
- Sei : Markiert das Ende der zweiten if-Anweisung.
- cd $verzeichnis || Ausgang 1 : Ändert das aktuelle Arbeitsverzeichnis in das angegebene Verzeichnis. Wenn der Verzeichniswechsel fehlschlägt (z. B. Verzeichnis nicht vorhanden), wird das Skript mit einem Fehlercode beendet.
- für Datei in *; Tun: ICH für Datei in *; Tun: löst eine Schleife aus, die alle Elemente im aktuellen Verzeichnis durchläuft (* entspricht allen Dateinamen).
- if [ -f $file ]; Dann : Überprüft, ob das aktuelle Schleifeniterationselement eine reguläre Datei ist (-f testet auf eine reguläre Datei).
- newname=$(echo $file | tr ‚A-Z‘ ‚a-z‘) : Wandelt den aktuellen Dateinamen ($file) mit dem Befehl tr in Kleinbuchstaben um und speichert das Ergebnis in der Variablen newname.
- [ $file != $newname ] && mv $file $newname : Vergleicht den ursprünglichen Dateinamen mit dem neuen Dateinamen in Kleinbuchstaben. Wenn sie unterschiedlich sind, wird die Datei mit dem Befehl mv umbenannt.
- Sei : Markiert das Ende der inneren if-Anweisung.
- Erledigt : Markiert das Ende der Schleife.

Notiz : Wir müssen beim Ausführen des Skripts ein Verzeichnis als Argument angeben. Hier haben wir den Pfad des aktuellen Verzeichnisses home/jayeshkumar/test verwendet
27) Wie können Sie arithmetische Operationen innerhalb eines Shell-Skripts verwenden?
Arithmetische Operationen können innerhalb eines Shell-Skripts mithilfe verschiedener integrierter Methoden ausgeführt werden. Die Shell bietet Mechanismen für einfache arithmetische Berechnungen mithilfe der arithmetischen Erweiterung wie:
- Arithmetische Erweiterung ($((…)))
- Verwenden des expr-Befehls
- Verwenden des let-Befehls
Hier ist unser Shell-Skript, das alle drei Methoden für arithmetische Operationen erklärt.
#!/bin/bash
num1=10
num2=5
#Arithmetische Erweiterung ($((…)))
Ergebnis=$((num1 + num2))
echo Summe: $result
#Verwenden des expr-Befehls
sum=$(expr $num1 + $num2)
echo Summe: $sum
#Verwenden des let-Befehls
sei sum = num1 + num2
echo Summe: $sum
Erläuterung:
- `#!/bin/bash` : Dies ist der Knaller, der angibt, dass das Skript mithilfe der Bash-Shell interpretiert werden soll.
- `num1=10` und ` num2=5` : Diese Zeilen weisen den Variablen ` die Werte 10 und 5 zu num1 ` und ` num2 ` bzw.
- `#Arithmetische Erweiterung ($((…)))` : Dies ist ein Kommentar, der den Anfang des Abschnitts angibt, der die arithmetische Erweiterung demonstriert.
- `result=$((num1 + num2))` : Diese Zeile verwendet eine arithmetische Erweiterung, um die Summe von ` zu berechnen num1 ` und ` num2 ` und speichert das Ergebnis im ` Ergebnis ` variabel.
- „echo Summe: $result“. : Diese Zeile gibt die berechnete Summe unter Verwendung des im ` gespeicherten Werts aus Ergebnis ` variabel.
- `#Verwenden des expr-Befehls` : Dies ist ein Kommentar, der den Anfang des Abschnitts angibt, der die Verwendung des „`“ demonstriert Ausdruck ` Befehl für arithmetische Operationen.
- `sum=$(expr $num1 + $num2)` : Diese Zeile verwendet das ` Ausdruck ` Befehl zur Berechnung der Summe von ` num1 ` und ` num2 ` und speichert das Ergebnis im ` Summe ` variabel. Beachten Sie, dass das ` Ausdruck Der Befehl ` erfordert Leerzeichen um die Operatoren.
- „Echo-Summe: $sum“. : Diese Zeile gibt die berechnete Summe unter Verwendung des im ` gespeicherten Werts aus Summe ` variabel.
- `#Verwenden des let-Befehls` : Dies ist ein Kommentar, der den Anfang des Abschnitts angibt, der die Verwendung des „`“ demonstriert lassen ` Befehl für arithmetische Operationen.
- `Lass Summe = num1 + num2″` : Diese Zeile verwendet das ` lassen ` Befehl zur Berechnung der Summe von ` num1 ` und ` num2 ` und weist das Ergebnis dem ` zu Summe ` variabel. Das ` lassen Für den Befehl ` sind keine Leerzeichen um die Operatoren erforderlich.
- „Echo-Summe: $sum“. : Diese Zeile gibt die berechnete Summe unter Verwendung des im ` gespeicherten Werts aus Summe ` variabel.

Arithmetik
28) Erstellen Sie ein Skript, das prüft, ob ein Netzwerkhost erreichbar ist.
Hier ist ein einfaches Shell-Skript, das mithilfe des Ping-Befehls prüft, ob ein Netzwerkhost erreichbar ist:
#!/bin/bash
host=$1″
if [ -z $host ]; Dann
Echo-Nutzung: $0
Ausgang 1
Sei
ping -c 4 $host
wenn [ $? -eq 0 ]; Dann
echo $host ist erreichbar.
anders
echo $host ist nicht erreichbar.
Sei
Erläuterung:
- Es nimmt einen Hostnamen oder eine IP-Adresse als Argument und prüft, ob das Argument angegeben wird.
- Wenn kein Argument angegeben wird, wird eine Nutzungsmeldung angezeigt und der Vorgang beendet.
- Es verwendet den Ping-Befehl mit der Option -c 4, um vier ICMP-Echo-Anfragen an den angegebenen Host zu senden.
- Nachdem der Ping-Befehl ausgeführt wurde, prüft er den Exit-Status ($?). Wenn der Exit-Status 0 ist, bedeutet dies, dass der Host erreichbar ist und das Skript eine Erfolgsmeldung ausgibt. Andernfalls wird eine Fehlermeldung ausgegeben.

Notiz : Wir müssen beim Ausführen des Skripts einen Hostnamen als Argument angeben. Hier haben wir google.com verwendet
29) Schreiben Sie ein Shell-Skript, um das größte Element in einem Array zu finden:
Hier ist ein Shell-Skript, um das größte Element in einem Array zu finden.
#!/bin/bash
# Deklarieren Sie ein Array
array=(3 56 24 89 67)
# Initialisieren Sie eine Variable, um den Maximalwert zu speichern, beginnend mit dem ersten Element
max=${array[0]}
# Durch das Array iterieren
für num in ${array[@]}; Tun
# Vergleichen Sie jedes Element mit dem aktuellen Maximum
if ((num> max)); Dann
max=$num
Sei
Erledigt
# Drucken Sie den Maximalwert aus
echo Das maximale Element im Array ist: $max
Erläuterung:
- ` #!/bin/bash `: Die Shebang-Zeile gibt an, dass das Skript mit der Bash-Shell interpretiert werden soll.
- ` array=(3 56 24 89 67) `: Das Array wird deklariert und mit Werten initialisiert.
- ` max=${array[0]} `: `max` wird mit dem ersten Element des Arrays initialisiert.
- ` für num in ${array[@]}; Tun „: Eine „for“-Schleife wird verwendet, um die Elemente des Arrays zu durchlaufen.
- ` if ((num> max)); Dann „: Eine „if“-Anweisung prüft, ob das aktuelle Element „num“ größer als das aktuelle Maximum „max“ ist.
- ` max=$num`: If`num ` ist größer als `max`, `max` wird mit dem Wert von num aktualisiert.
- ` Erledigt `: Die `for`-Schleife ist geschlossen.
- ` echo Das maximale Element im Array ist: $max `: Abschließend gibt das Skript den im Array gefundenen Maximalwert aus.

größte Zahl
30) Schreiben Sie ein Skript, um die Summe der Elemente in einem Array zu berechnen.
#!/bin/bash
# Deklarieren Sie ein Array
array=(1 65 22 19 94)
# Initialisieren Sie eine Variable, um die Summe zu speichern
Summe=0
# Durchlaufen Sie das Array und fügen Sie jedes Element zur Summe hinzu
für num in ${array[@]}; Tun
am=$((am + am))
Erledigt
# Drucken Sie die Summe aus
echo Die Summe der Elemente im Array ist: $sum
Erläuterung:
` #!/bin/bash `: Die Shebang-Zeile gibt an, dass das Skript mit der Bash-Shell interpretiert werden soll.
` array=(1 65 22 19 94) `: Das Array wird deklariert und mit Werten initialisiert.
` Summe=0 `:` Summe ` wird auf Null initialisiert, um die Summe der Elemente zu speichern.
` für num in ${array[@]}; Tun `: A` für Die Schleife wird verwendet, um die Elemente des Arrays zu durchlaufen.
` am=$((am + am)) `: Innerhalb der Schleife jedes Element ` Auf eins ` wird dem ` hinzugefügt Summe ` variabel.
` Erledigt `: Das ` für ` Schleife ist geschlossen.
„echo Die Summe der Elemente im Array ist: $sum“: Schließlich gibt das Skript die Summe aller Elemente im Array aus.

Summe der Elemente
Erfahren Sie mehr über Shell-Skripte
Abschluss
Wir alle wissen, dass Shell-Skripte sehr nützlich sind, um die Arbeitsproduktivität zu steigern und auch Zeit zu sparen. In diesem Artikel haben wir es also behandelt 30 sehr nützliche und am meisten betrügerische Beispiele für Shell-Skripte . Wir hoffen, dass diese vollständige Anleitung zum Beispiel für Shell-Skripte Ihnen hilft, alles über die Shell-Skripte zu verstehen.
) aus. - Ausgang 1 : Diese Zeile beendet das Skript mit dem Exit-Code 1, was darauf hinweist, dass ein Fehler aufgetreten ist.
- F i: Dies markiert das Ende der ersten if-Anweisung.
- Wenn [ ! -d $Verzeichnis ]; Dann : Diese Zeile prüft, ob das angegebene Verzeichnis nicht existiert (-d testet ein Verzeichnis).
- echo Fehler: „$directory“ ist kein gültiges Verzeichnis. : Wenn das angegebene Verzeichnis nicht existiert, gibt diese Zeile eine Fehlermeldung aus.
- Ausgang 1 : Beendet das Skript mit dem Exit-Code 1.
- Sei : Markiert das Ende der zweiten if-Anweisung.
- cd $verzeichnis || Ausgang 1 : Ändert das aktuelle Arbeitsverzeichnis in das angegebene Verzeichnis. Wenn der Verzeichniswechsel fehlschlägt (z. B. Verzeichnis nicht vorhanden), wird das Skript mit einem Fehlercode beendet.
- für Datei in *; Tun: ICH für Datei in *; Tun: löst eine Schleife aus, die alle Elemente im aktuellen Verzeichnis durchläuft (* entspricht allen Dateinamen).
- if [ -f $file ]; Dann : Überprüft, ob das aktuelle Schleifeniterationselement eine reguläre Datei ist (-f testet auf eine reguläre Datei).
- newname=$(echo $file | tr ‚A-Z‘ ‚a-z‘) : Wandelt den aktuellen Dateinamen ($file) mit dem Befehl tr in Kleinbuchstaben um und speichert das Ergebnis in der Variablen newname.
- [ $file != $newname ] && mv $file $newname : Vergleicht den ursprünglichen Dateinamen mit dem neuen Dateinamen in Kleinbuchstaben. Wenn sie unterschiedlich sind, wird die Datei mit dem Befehl mv umbenannt.
- Sei : Markiert das Ende der inneren if-Anweisung.
- Erledigt : Markiert das Ende der Schleife.

Notiz : Wir müssen beim Ausführen des Skripts ein Verzeichnis als Argument angeben. Hier haben wir den Pfad des aktuellen Verzeichnisses home/jayeshkumar/test verwendet
27) Wie können Sie arithmetische Operationen innerhalb eines Shell-Skripts verwenden?
Arithmetische Operationen können innerhalb eines Shell-Skripts mithilfe verschiedener integrierter Methoden ausgeführt werden. Die Shell bietet Mechanismen für einfache arithmetische Berechnungen mithilfe der arithmetischen Erweiterung wie:
- Arithmetische Erweiterung ($((…)))
- Verwenden des expr-Befehls
- Verwenden des let-Befehls
Hier ist unser Shell-Skript, das alle drei Methoden für arithmetische Operationen erklärt.
#!/bin/bash
num1=10
num2=5
#Arithmetische Erweiterung ($((…)))
Ergebnis=$((num1 + num2))
echo Summe: $result
#Verwenden des expr-Befehls
sum=$(expr $num1 + $num2)
echo Summe: $sum
#Verwenden des let-Befehls
sei sum = num1 + num2
echo Summe: $sum
Erläuterung:
- `#!/bin/bash` : Dies ist der Knaller, der angibt, dass das Skript mithilfe der Bash-Shell interpretiert werden soll.
- `num1=10` und ` num2=5` : Diese Zeilen weisen den Variablen ` die Werte 10 und 5 zu num1 ` und ` num2 ` bzw.
- `#Arithmetische Erweiterung ($((…)))` : Dies ist ein Kommentar, der den Anfang des Abschnitts angibt, der die arithmetische Erweiterung demonstriert.
- `result=$((num1 + num2))` : Diese Zeile verwendet eine arithmetische Erweiterung, um die Summe von ` zu berechnen num1 ` und ` num2 ` und speichert das Ergebnis im ` Ergebnis ` variabel.
- „echo Summe: $result“. : Diese Zeile gibt die berechnete Summe unter Verwendung des im ` gespeicherten Werts aus Ergebnis ` variabel.
- `#Verwenden des expr-Befehls` : Dies ist ein Kommentar, der den Anfang des Abschnitts angibt, der die Verwendung des „`“ demonstriert Ausdruck ` Befehl für arithmetische Operationen.
- `sum=$(expr $num1 + $num2)` : Diese Zeile verwendet das ` Ausdruck ` Befehl zur Berechnung der Summe von ` num1 ` und ` num2 ` und speichert das Ergebnis im ` Summe ` variabel. Beachten Sie, dass das ` Ausdruck Der Befehl ` erfordert Leerzeichen um die Operatoren.
- „Echo-Summe: $sum“. : Diese Zeile gibt die berechnete Summe unter Verwendung des im ` gespeicherten Werts aus Summe ` variabel.
- `#Verwenden des let-Befehls` : Dies ist ein Kommentar, der den Anfang des Abschnitts angibt, der die Verwendung des „`“ demonstriert lassen ` Befehl für arithmetische Operationen.
- `Lass Summe = num1 + num2″` : Diese Zeile verwendet das ` lassen ` Befehl zur Berechnung der Summe von ` num1 ` und ` num2 ` und weist das Ergebnis dem ` zu Summe ` variabel. Das ` lassen Für den Befehl ` sind keine Leerzeichen um die Operatoren erforderlich.
- „Echo-Summe: $sum“. : Diese Zeile gibt die berechnete Summe unter Verwendung des im ` gespeicherten Werts aus Summe ` variabel.

Arithmetik
28) Erstellen Sie ein Skript, das prüft, ob ein Netzwerkhost erreichbar ist.
Hier ist ein einfaches Shell-Skript, das mithilfe des Ping-Befehls prüft, ob ein Netzwerkhost erreichbar ist:
#!/bin/bash
host=″
if [ -z $host ]; Dann
Echo-Nutzung: Bei allen Linux-Distributionen ist das Shell-Skript wie ein Zauberstab, der den Prozess automatisiert, Benutzern Zeit spart und die Produktivität steigert. Dieses Tutorial zur SOLL-Skripterstellung stellt Ihnen mehr als 25 SOLL-Skripting-Beispiele vor.
Aber bevor wir zum Thema übergehen Shell-Scripting Beispiele: Lassen Sie uns Shell-Skripte und die tatsächlichen Anwendungsfälle von Shell-Skripten verstehen.
Was ist Shell-Skript?
Nun, die Schale ist eine CLI ( Befehlszeileninterpreter ), das in einem Textfenster ausgeführt wird, in dem Benutzer Shell-Befehle verwalten und ausführen können. Andererseits wird der Prozess des Schreibens einer Reihe von Befehlen, die auf einem Linux-System ausgeführt werden sollen. Eine Datei, die solche Anweisungen enthält, wird als Bash-Skript bezeichnet.
Verwendung von Shell-Skripten
Im Folgenden sind einige häufige Verwendungszwecke von Shell Script aufgeführt:
- Aufgabenautomatisierung – Es kann verwendet werden, um sich wiederholende Aufgaben wie regelmäßige Backups und Softwareinstallationsaufgaben zu automatisieren.
- Anpassung - Man kann Shell-Skripte verwenden, um seine Befehlszeilenumgebung zu entwerfen und seine Aufgabe je nach Bedarf einfach auszuführen.
- Dokumentenverwaltung - Die Shell-Skripte können auch zum Verwalten und Bearbeiten von Dateien und Verzeichnissen verwendet werden, beispielsweise zum Verschieben, Kopieren, Umbenennen oder Löschen von Dateien.
Beispiele für Shell-Skripte unter Linux
1) Was bedeutet das Shebang (#!) am Anfang eines Shell-Skripts?
Der Mist (#!) am Anfang eines Skripts gibt den Interpreter an, der zum Ausführen des Skripts verwendet werden soll. Es teilt dem System mit, welche Shell oder welcher Interpreter die Befehle des Skripts interpretieren soll.
Zum Beispiel: Angenommen, wir haben ein Skript mit dem Namen myscript.sh geschrieben in der Bash-Shell:

Mist
In diesem Beispiel:
- Das #!/bin/bash am Anfang des Skripts gibt an, dass das Skript mithilfe der Bash-Shell interpretiert werden soll.
- Die Echo-Befehle werden zum Drucken von Nachrichten an das Terminal verwendet.
2) Wie führt man ein Shell-Skript über die Befehlszeile aus?
Um ein Shell-Skript über die Befehlszeile auszuführen, müssen wir die folgenden Schritte ausführen:
- Stellen Sie sicher, dass die Skriptdatei über ausführbare Berechtigungen verfügt chmod-Befehl :
chmod +x myscript.sh>
- Führen Sie das Skript unter Verwendung seines Dateinamens aus:
./myscript.sh>
Hier muss ersetzt werden myscrtipt.sh mit Ihrem Skriptnamen.
3) Schreiben Sie ein Shell-Skript, das techcodeview.com auf dem Terminal ausgibt.
Erstellen Sie einen Skriptnamen „myscript.sh“ (wir verwenden „ Weil ` Editor, Sie können einen beliebigen Editor auswählen)
vim myscript.sh>
#!/bin/bash
# Dieses Skript druckt techcodeview.com auf dem Terminal
echo techcodeview.com

Namen drucken
Wir machen unser Skript mit „chmod +x“ ausführbar, führen es dann mit „./myscipt.sh“ aus und erhalten die gewünschte Ausgabe techcodeview.com.
4) Erklären Sie den Zweck des Echo-Befehls beim Shell-Scripting.
Der Echo-Befehl dient der Anzeige von Texten oder Variablen auf dem Terminal. Es wird häufig zum Drucken von Nachrichten, Variablenwerten und zum Generieren von Programmausgaben verwendet.

Echo-Befehl
In diesem Beispiel haben wir „echo“ direkt auf dem Terminal ausgeführt, da es innerhalb des Shell-Skripts genauso funktioniert.
5) Wie kann man einer Variablen in einem Shell-Skript einen Wert zuweisen?
Variablen werden Werte mit dem Zuweisungsoperator = zugewiesen.
Zum Beispiel:
#!/bin/bash
# Einer Variablen einen Wert zuweisen
Name=Jayesh
Alter=21
echo $name $age
Erläuterung:
- Der Namensvariablen wird der Wert Jayesh zugewiesen.
- Der Altersvariable wird der Wert 21 zugewiesen.
- echo wird zum Drucken verwendet und `$name` `$age` wird verwendet, um den in den Variablen gespeicherten Wert aufzurufen.

6) Schreiben Sie ein Shell-Skript, das den Namen eines Benutzers als Eingabe verwendet und ihn begrüßt.
Erstellen Sie einen Skriptnamen „example.sh“.
#!/bin/bash
# Fragen Sie den Benutzer nach seinem Namen
echo Wie heißt du?
Namen lesen
# Begrüßen Sie den Benutzer
echo Hallo, $name! Freut mich, Sie kennenzulernen.
Erläuterung:
- #!/bin/bash: Das ist die Shebang-Zeile. Es weist das System an, den Bash-Interpreter zum Ausführen des Skripts zu verwenden.
- # Fragen Sie den Benutzer nach seinem Namen: Dies ist ein Kommentar. Es bietet Kontext zum kommenden Code. Kommentare werden vom Interpreter ignoriert.
- echo Wie heißt du?: Der echo-Befehl wird verwendet, um den Text in doppelten Anführungszeichen auf dem Terminal anzuzeigen.
- Lesename: Der Lesebefehl wartet auf die Eingabe von Text durch den Benutzer und speichert ihn im Variablennamen.
- echo Hallo, $name! Freut mich, Sie kennenzulernen.: Diese Zeile verwendet den echo-Befehl, um eine Begrüßungsnachricht zu drucken, die den Wert der Namensvariablen enthält, der aus der Benutzereingabe erfasst wurde.

7) Wie fügt man einem Shell-Skript Kommentare hinzu?
Kommentare im Shell-Scripting werden verwendet, um Erklärungen oder Kontext zum Code bereitzustellen. Sie werden vom Interpreter ignoriert und sind nur für Menschen gedacht, die das Skript lesen. Mit dem #-Symbol können Sie Kommentare hinzufügen.
#!/bin/bash
# Dies ist ein Kommentar, der den Zweck des Skripts erläutert
echo gfg
8) Erstellen Sie ein Shell-Skript, das prüft, ob eine Datei im aktuellen Verzeichnis vorhanden ist.
Hier ist ein Skript, das prüft, ob eine Datei namens example.txt im aktuellen Verzeichnis vorhanden ist:
#!/bin/bash
file=example.txt
# Überprüfen Sie, ob die Datei vorhanden ist
if [ -e $file ]; Dann
echo Datei existiert: $file
anders
echo Datei nicht gefunden: $file
Sei
Erläuterung:
- #!/bin/bash: Dies ist die Shebang-Zeile, die den Interpreter (/bin/bash) angibt, der zum Ausführen des Skripts verwendet werden soll.
- file=example.txt: Diese Zeile definiert die Variablendatei und weist ihr den Wert example.txt zu. Sie können dies durch den Namen der Datei ersetzen, nach der Sie suchen möchten.
- if [ -e $file ]; then: Diese Zeile beginnt eine if-Anweisung. Die Bedingung [ -e $file ] prüft, ob die durch den Wert der Dateivariablen angegebene Datei existiert. Das Flag -e wird verwendet, um zu prüfen, ob eine Datei vorhanden ist.
- echo Datei existiert: $datei: Wenn die Bedingung wahr ist (d. h. die Datei existiert), gibt diese Zeile eine Meldung aus, die angibt, dass die Datei existiert, zusammen mit dem Namen der Datei.
- else: Wenn die Bedingung falsch ist (d. h. die Datei existiert nicht), führt das Skript den Code unter dem else-Zweig aus.
- echo Datei nicht gefunden: $datei: Diese Zeile gibt eine Fehlermeldung aus, die angibt, dass die angegebene Datei nicht gefunden wurde, zusammen mit dem Namen der Datei.
- fi: Diese Zeile markiert das Ende der if-Anweisung.

Datei wird gefunden
9) Was ist der Unterschied zwischen einfachen Anführungszeichen (‘) und doppelten Anführungszeichen () beim Shell-Scripting?
Einfache Anführungszeichen (‘) und doppelte Anführungszeichen () werden zum Einschließen von Zeichenfolgen in Shell-Skripten verwendet, haben jedoch unterschiedliche Verhaltensweisen:
- Einfache Anführungszeichen: Alles zwischen einfachen Anführungszeichen wird als Literalzeichenfolge behandelt. Variablennamen und die meisten Sonderzeichen werden nicht erweitert.
- Doppelte Anführungszeichen: Variablen und bestimmte Sonderzeichen in doppelten Anführungszeichen werden erweitert. Der Inhalt unterliegt der Variablenersetzung und der Befehlsersetzung.
#!/bin/bash
abcd=Hallo
echo ‚$abcd‘ # Ausgabe: $abcd
echo $abcd # Ausgabe: Hallo
10) Wie können Sie Befehlszeilenargumente in einem Shell-Skript verwenden?
Kommandozeilenargumente sind Werte, die einem Skript bei seiner Ausführung bereitgestellt werden. Auf sie kann innerhalb des Skripts über spezielle Variablen wie $1, $2 usw. zugegriffen werden, wobei $1 das erste Argument, $2 das zweite Argument usw. darstellt.
Zum Beispiel: Wenn unser Skriptname in „example.sh“ steht
#!/bin/bash
echo Skriptname: $0
echo Erstes Argument: $1
echo Zweites Argument: $2
Wenn wir das Skript mit „.example.sh hello_1 hello_2“ ausführen, wird Folgendes ausgegeben:

CLI-Argumente
11) Wie verwenden Sie die for-Schleife, um eine Liste von Werten zu durchlaufen?
Erstellen Sie einen Skriptnamen „example.sh“.
#!/bin/bash
Früchte = (Apfel, Banane, Kirsche, Dattel)
für Obst in ${fruits[@]}; Tun
echo Aktuelle Frucht: $fruit
Erledigt
Erläuterung:
Die Zeile „fruits=“ erstellt ein Array mit dem Namen „Früchte“ mit vier Elementen: Apfel, Banane, Kirsche und Dattel.
- für Obst in ${fruits[@]}; do: Diese Zeile startet eine for-Schleife. Hier ist, was jeder Teil bedeutet:
- für Obst: Dies deklariert eine Schleifenvariable namens Obst. In jeder Iteration der Schleife speichert Fruit den Wert des aktuellen Elements aus dem Fruit-Array.
- ${fruits[@]}: Dies ist eine Array-Erweiterung, die alle Elemente aus dem Fruit-Array übernimmt. Die ${…}-Syntax stellt sicher, dass jedes Element als separates Element behandelt wird.
- do: Dieses Schlüsselwort markiert den Anfang des Schleifenkörpers.
- echo Aktuelle Frucht: $fruit: Innerhalb der Schleife verwendet diese Zeile den Echo-Befehl, um den aktuellen Wert der Schleifenvariablen Frucht anzuzeigen. Für jede Frucht im Array wird eine Meldung wie Aktuelle Frucht: Apfel ausgegeben.
- done: Dieses Schlüsselwort markiert das Ende des Schleifenkörpers. Es teilt dem Skript mit, dass die Schleife beendet ist.

for-Schleife
12) Schreiben Sie ein Shell-Skript, das mithilfe einer Schleife die Summe der ganzen Zahlen von 1 bis N berechnet.
Erstellen Sie einen Skriptnamen „example.sh“.
#!/bin/bash
echo Geben Sie eine Zahl (N) ein:
lies N
Summe=0
for (( i=1; i<=$N; i++ )); Tun
sum=$((sum + i))
Erledigt
echo Die Summe der ganzen Zahlen von 1 bis $N ist: $sum
Erläuterung:
Das Skript fordert Sie zunächst dazu auf, mithilfe von „read“ eine Zahl (N) einzugeben. Diese Zahl bestimmt, wie oft die Schleife ausgeführt wird.
- Die Variablensumme wird auf 0 initialisiert. Diese Variable verfolgt die Summe der Ganzzahlen.
- Die for-Schleife beginnt mit for (( i=1; i<=$N; i++ )). Diese Schleifenstruktur wird verwendet, um eine Reihe von Aktionen eine bestimmte Anzahl von Malen zu wiederholen, in diesem Fall von 1 bis zum Wert N.
- Innerhalb der Schleife passieren folgende Dinge:
- i=1 setzt die Schleifenvariable i zu Beginn jeder Iteration auf 1.
- Die Schleifenbedingung i<=$N prüft, ob i immer noch kleiner oder gleich der angegebenen Zahl N ist.
- Wenn die Bedingung wahr ist, wird der Schleifenkörper ausgeführt.
- sum=$((sum + i)) berechnet den neuen Wert von sum, indem der aktuelle Wert von i dazu addiert wird. Dadurch werden die ganzen Zahlen von 1 bis zum aktuellen i-Wert addiert.
- Nach jeder Iteration erhöht i++ den Wert von i um 1.
- Die Schleife läuft weiter, bis die Bedingung i<=$N falsch wird (wenn i größer als N wird).
- Sobald die Schleife beendet ist, zeigt das Skript die Summe der ganzen Zahlen von 1 bis zur eingegebenen Zahl N an.

13) Erstellen Sie ein Skript, das nach einem bestimmten Wort in einer Datei sucht und dessen Vorkommen zählt.
Erstellen Sie einen Skriptnamen „word_count.sh“.
#!/bin/bash
echo Geben Sie das Wort ein, nach dem gesucht werden soll:
Zielwort lesen
echo Geben Sie den Dateinamen ein:
Dateinamen lesen
count=$(grep -o -w $target_word $filename | wc -l)
echo Das Wort „$target_word“ kommt $count mal in „$filename“ vor.
Erläuterung:
- echo Geben Sie das zu suchende Wort ein:: In dieser Zeile wird eine Meldung angezeigt, in der der Benutzer aufgefordert wird, ein Wort einzugeben, nach dem er in einer Datei suchen möchte.
- read target_word: Diese Zeile liest die vom Benutzer bereitgestellten Eingaben und speichert sie in einer Variablen namens target_word.
- echo Geben Sie den Dateinamen ein:: In dieser Zeile wird eine Meldung angezeigt, in der der Benutzer aufgefordert wird, den Namen der Datei einzugeben, in der er suchen möchte.
- Dateinamen lesen: Diese Zeile liest die vom Benutzer bereitgestellten Eingaben und speichert sie in einer Variablen namens Dateiname.
- count=$(grep -o -w $target_word $filename | wc -l): Diese Zeile erledigt die Hauptarbeit des Skripts. Lassen Sie es uns weiter aufschlüsseln:
- grep -o -w $target_word $filename: Dieser Teil des Befehls sucht nach Vorkommen des target_word im angegebenen Dateinamen. Die Optionen -o und -w stellen sicher, dass nur Ganzwortübereinstimmungen gezählt werden.
- |: Dies ist eine Pipe, die die Ausgabe des vorherigen Befehls übernimmt und als Eingabe an den nächsten Befehl sendet.
- wc -l: Dieser Teil des Befehls verwendet den Befehl wc, um die Anzahl der Zeilen in der Eingabe zu zählen. Die Option -l zählt gezielt die Zeilen.
- Der gesamte Befehl berechnet die Anzahl der Vorkommen des Zielworts in der Datei und weist diese Anzahl der Variablen coun zu

14) Erklären Sie die Unterschiede zwischen Standardausgabe (stdout) und Standardfehler (stderr).
Der Hauptunterschied zwischen Standardausgabe (stdout) und Standardfehler (stderr) ist wie folgt:
- Standardausgabe (stdout): Dies ist der Standardausgabestream, in den die reguläre Ausgabe eines Befehls geht. Es wird standardmäßig auf dem Terminal angezeigt. Sie können es mit> in eine Datei umleiten.
- Standardfehler (stderr): Dies ist der Ausgabestream für Fehlermeldungen und Warnungen. Es wird standardmäßig auch auf dem Terminal angezeigt. Sie können es mit 2> in eine Datei umleiten.
15) Erklären Sie das Konzept bedingter Anweisungen im Shell-Scripting.
Bedingte Anweisungen im Shell-Scripting ermöglichen es uns, Entscheidungen zu treffen und den Ablauf unseres Skripts auf der Grundlage bestimmter Bedingungen zu steuern. Sie ermöglichen unserem Skript, unterschiedliche Befehlssätze auszuführen, je nachdem, ob eine bestimmte Bedingung wahr oder falsch ist. Die primären bedingten Anweisungen beim Shell-Scripting sind die if-Anweisung, die elif-Anweisung (optional) und die else-Anweisung (optional).
Hier ist die Grundstruktur einer bedingten Anweisung im Shell-Scripting:
if [ Bedingung ]; Dann
# Befehle, die ausgeführt werden sollen, wenn die Bedingung wahr ist
elif [ another_condition ]; Dann
# Befehle, die ausgeführt werden sollen, wenn another_condition wahr ist (optional)
anders
# Befehle, die ausgeführt werden sollen, wenn keine der Bedingungen wahr ist (optional)
Sei
Erläuterung:
- [ Bedingung ] = Befehl, der die Bedingung auswertet und einen Exit-Status „wahr“ (0) oder „falsch“ (ungleich Null) zurückgibt.
- then = Es handelt sich um ein Schlüsselwort, das angibt, dass die darauf folgenden Befehle ausgeführt werden, wenn die Bedingung „true“ ergibt.
- elif = (Abkürzung für else if) Dies ist ein Abschnitt, der es uns ermöglicht, zusätzliche zu überprüfende Bedingungen anzugeben.
- else = es ist ein Abschnitt, der Befehle enthält, die ausgeführt werden, wenn keine der Bedingungen wahr ist.
- fi = Es ist ein Schlüsselwort, das das Ende des bedingten Blocks markiert.
16) Wie liest man Zeilen aus einer Datei in einem Shell-Skript?
Zu Zeilen lesen Aus einer Datei innerhalb eines Shell-Skripts können wir verschiedene Methoden verwenden, aber ein gängiger Ansatz ist die Verwendung einer While-Schleife in Kombination mit dem Lesebefehl. So können wir es machen:
#!/bin/bash
file=/home/jayeshkumar/jayesh.txt
# Überprüfen Sie, ob die Datei vorhanden ist
if [ -e $file ]; Dann
while IFS= read -r line; Tun
echo Zeile gelesen: $line
# Fügen Sie hier Ihre Verarbeitungslogik hinzu
erledigt <$file
anders
echo Datei nicht gefunden: $file
Sei
Erläuterung:
- #!/bin/bash: Dies ist die Shebang-Zeile, die den Interpreter (/bin/bash) angibt, der zum Ausführen des Skripts verwendet werden soll.
- file=/home/jayeshkumar/jayesh.txt: Diese Zeile definiert die Variablendatei und weist den vollständigen Pfad zur Datei jayesh.txt im Verzeichnis /home/jayeshkumar zu. Ändern Sie diesen Pfad so, dass er mit dem tatsächlichen Pfad der Datei übereinstimmt, die Sie lesen möchten.
- if [ -e $file ]; then: Diese Zeile beginnt eine if-Anweisung. Es prüft, ob die durch die Variable $file angegebene Datei existiert. Das Flag -e prüft, ob eine Datei vorhanden ist.
- while IFS= read -r line; do: Diese Zeile initiiert eine While-Schleife, die Zeilen aus der Datei liest.
- IFS=: Das IFS (Internal Field Separator) wird auf einen leeren Wert gesetzt, um führende und nachfolgende Leerzeichen beizubehalten.
- read -r line: Dies liest die aktuelle Zeile aus der Datei und speichert sie in der Variablen line.
- echo Zeile gelesen: $line: Diese Zeile gibt den Inhalt der Zeile aus, die aus der Datei gelesen wurde. Die Variable $line enthält den Inhalt der aktuellen Zeile.
- # Fügen Sie hier Ihre Verarbeitungslogik hinzu: Dies ist ein Platzhalterkommentar, in dem Sie Ihre eigene Logik zur Verarbeitung jeder Zeile hinzufügen können. Beispielsweise können Sie die Zeile analysieren, Informationen extrahieren oder bestimmte Aktionen basierend auf dem Inhalt ausführen.
- done <$file: Dies markiert das Ende der while-Schleife. Das < $file leitet den Inhalt der Datei um, damit er von der Schleife gelesen werden kann.
- else: Wenn die Datei nicht existiert (die Bedingung in der if-Anweisung ist falsch), führt das Skript den Code unter dem else-Zweig aus.
- echo Datei nicht gefunden: $file: Diese Zeile gibt eine Fehlermeldung aus, die angibt, dass die angegebene Datei nicht gefunden wurde.
- fi: Diese Zeile markiert das Ende der if-Anweisung.

Datei lesen
Hier haben wir „“ verwendet pwd ` Befehl, um den Pfad des aktuellen Verzeichnisses abzurufen.
17) Schreiben Sie eine Funktion in ein Shell-Skript, die die Fakultät einer bestimmten Zahl berechnet.
Hier ist das Skript, dasBerechnen Sie die Fakultäteiner gegebenen Zahl.
#!/bin/bash
# Definieren Sie eine Funktion zur Berechnung der Fakultät
berechne_faktorial() {
num=$1
Tatsache=1
for ((i=1; i<=num; i++)); Tun
fact=$((fact * i))
Erledigt
echo $fact
}
# Fordern Sie den Benutzer auf, eine Nummer einzugeben
echo Geben Sie eine Zahl ein:
lese input_num
# Rufen Sie die Funktion „calcure_factorial“ mit der Eingabenummer auf
factial_result=$(calculate_factorial $input_num)
# Zeigen Sie das faktorielle Ergebnis an
echo Factorial von $input_num ist: $factorial_result
Erläuterung:
- Das Skript beginnt mit der Shebang-Zeile #!/bin/bash, um den Interpreter anzugeben.
- berechne_faktorial() ist als Funktion definiert. Es benötigt ein Argument, num, das die Zahl ist, für die die Fakultät berechnet werden muss.
- Innerhalb der Funktion wird fact auf 1 initialisiert. Diese Variable speichert das Fakultätsergebnis.
- Die for-Schleife iteriert von 1 bis zur angegebenen Zahl (num). In jeder Iteration multipliziert es den aktuellen Wert von fact mit dem Schleifenindex i.
- Nach Abschluss der Schleife enthält die Faktenvariable die berechnete Fakultät.
- Das Skript fordert den Benutzer mit „read“ zur Eingabe einer Zahl auf.
- Die Funktion „calcure_factorial“ wird mit der vom Benutzer angegebenen Zahl aufgerufen und das Ergebnis wird in der Variablen „factorial_result“ gespeichert.
- Abschließend zeigt das Skript das berechnete Fakultätsergebnis an.

Fakultät
18) Wie gehen Sie mit Signalen wie Strg+C in einem Shell-Skript um?
In einem Shell-Skript können Sie Signale wie Strg+C (auch bekannt als SIGINT) mit dem Trap-Befehl verarbeiten. Strg+C generiert ein SIGINT-Signal, wenn der Benutzer es drückt, um das laufende Skript oder Programm zu unterbrechen. Mithilfe des Trap-Befehls können Sie Aktionen festlegen, die ausgeführt werden sollen, wenn ein bestimmtes Signal empfangen wird. So gehen Sie mit Signalen wie Strg+C in einem Shell-Skript um:
#!/bin/bash
Aufräumen() {
echo Skript unterbrochen. Bereinigung wird durchgeführt…
# Fügen Sie hier Ihre Bereinigungsaktionen hinzu
Ausgang 1
}
# Richten Sie eine Falle ein, um die Bereinigungsfunktion aufzurufen, wenn Strg+C (SIGINT) empfangen wird
Fallenbereinigung SIGINT
# Rest Ihres Skripts
echo Laufen…
Schlaf 10
echo Fertig.
Der Umgang mit Signalen ist wichtig, um Skripte robust zu machen und sicherzustellen, dass sie unerwartete Unterbrechungen ordnungsgemäß verarbeiten. Sie können die Bereinigungsfunktion an Ihre spezifischen Anforderungen anpassen, z. B. Dateien schließen, Prozesse stoppen oder Informationen protokollieren, bevor das Skript beendet wird.
Erläuterung:
- #!/bin/bash: Diese Shebang-Zeile gibt den Interpreter an, der zum Ausführen des Skripts verwendet werden soll.
- cleanup() { … }: Dies definiert eine Funktion namens cleanup. In diese Funktion können Sie alle Aktionen einschließen, die ausgeführt werden müssen, wenn das Skript unterbrochen wird, z. B. das Schließen von Dateien, das Freigeben von Ressourcen oder das Durchführen anderer Bereinigungsaufgaben.
- trap cleanup SIGINT: Der trap-Befehl wird zum Einrichten eines Signalhandlers verwendet. In diesem Fall wird angegeben, dass die Bereinigungsfunktion ausgeführt werden soll, wenn das SIGINT-Signal (Strg+C) empfangen wird.
- echo Running…, sleep 10, echo Finished.: Dies sind nur Beispielbefehle, um die Ausführung eines Skripts zu simulieren.

19) Erstellen Sie ein Skript, das nach doppelten Zeilen in einer Textdatei sucht und diese entfernt.
Hier ist unser Linux-Skript, in dem wir doppelte Zeilen aus einer Textdatei entfernen.
#!/bin/bash
input_file=input.txt
Ausgabedatei=Ausgabe.txt
$input_file | sortieren uniq> $output_file
echo Doppelte Zeilen erfolgreich entfernt.
Erläuterung:
- Das Skript beginnt mit einem Shebang (#!/bin/bash), der angibt, dass das Skript mithilfe der Bash-Shell interpretiert werden soll.
- Die Variable input_file wird auf den Namen der Eingabedatei gesetzt, die doppelte Zeilen enthält (ändern Sie diesen in Ihren tatsächlichen Namen der Eingabedatei).
- Die Variable „output_file“ wird auf den Namen der Ausgabedatei gesetzt, aus der die Duplikate entfernt werden (ändern Sie diesen in den gewünschten Namen der Ausgabedatei).
- Das Skript verwendet den Sortierbefehl, um die Zeilen in der Eingabedatei zu sortieren. Durch das Sortieren der Zeilen wird sichergestellt, dass doppelte Zeilen gruppiert werden.
- Die sortierten Zeilen werden dann durch den Befehl uniq geleitet, der aufeinanderfolgende doppelte Zeilen entfernt. Die Ausgabe dieses Prozesses wird in die Ausgabedatei umgeleitet.
- Nachdem die Duplikate entfernt wurden, gibt das Skript eine Erfolgsmeldung aus.

Entfernen doppelter Zeilen
Hier verwenden wir „ Katze ` um den Text in der Textdatei anzuzeigen.
20) Schreiben Sie ein Skript, das ein sicheres Zufallspasswort generiert.
Hier ist unser Skript zum Generieren eines sicheren Zufallspassworts.
#!/bin/bash
# Funktion zum Generieren eines zufälligen Passworts
generiere Passwort() {
tr -dc 'A-Za-z0-9!@#$%^&*()_+{}[]'
}
# Rufen Sie die Funktion auf und speichern Sie das generierte Passwort
passwort=$(generate_password)
echo Generiertes Passwort: $password
Hinweis: Der Benutzer kann die Länge seines Passworts entsprechend ändern, indem er die Zahl „12“ ersetzt.
Erläuterung:
- Das Skript beginnt mit einem Shebang (#!/bin/bash), der angibt, dass es mit der Bash-Shell interpretiert werden soll.
- Die Funktion „generate_password“ ist so definiert, dass sie ein zufälliges Passwort generiert. So funktioniert das:
- tr -dc 'A-Za-z0-9!@#$%^&*()_+{}[]'
- falten -w 12 unterteilt die gefilterten Zufallsdaten in Zeilen mit einer Breite von jeweils 12 Zeichen.
- head -n 1 wählt die erste Zeile aus und gibt uns effektiv eine zufällige Folge von Zeichen der Länge 12.
- Der Variable „password“ wird das Ergebnis des Aufrufs der Funktion „generate_password“ zugewiesen.
- Abschließend wird das generierte Passwort mittels Echo angezeigt.

21) Schreiben Sie ein Shell-Skript, das die Gesamtgröße aller Dateien in einem Verzeichnis berechnet.
Hier ist ein Shell-Skript zur Berechnung der Gesamtgröße aller Dateien in einem Verzeichnis.
#!/bin/bash
Verzeichnis=/Pfad/zu/Ihrem/Verzeichnis
total_size=$(du -csh $directory | grep total | awk ‚{print $1}‘)
echo Gesamtgröße der Dateien in $directory: $total_size
Erläuterung:
- Das Skript beginnt mit dem Befehl #!/bin/bash, der darauf hinweist, dass es mithilfe der Bash-Shell interpretiert werden soll.
- Die Verzeichnisvariable wird auf den Pfad des Verzeichnisses gesetzt, für das Sie die Gesamtdateigröße berechnen möchten. Ersetzen Sie /path/to/your/directory durch den tatsächlichen Pfad.
- Der Befehl du wird verwendet, um die Dateispeichernutzung abzuschätzen. Die verwendeten Optionen sind:
- -c: Erzeuge eine Gesamtsumme.
- -s: Zeigt nur die Gesamtgröße des angegebenen Verzeichnisses an.
- -h: Druckgrößen in einem für Menschen lesbaren Format (z. B. KB, MB, GB).
- Die Ausgabe von du wird an grep total weitergeleitet, um die Zeile herauszufiltern, die die Gesamtgröße enthält.
- awk „{print $1}“ wird verwendet, um das erste Feld (Gesamtgröße) aus der Zeile zu extrahieren.
- Die berechnete Gesamtgröße wird in der Variablen total_size gespeichert.
- Abschließend zeigt das Skript mithilfe von Echo die Gesamtgröße an.

Gesamtgröße der Dateien
Hier haben wir „“ verwendet pwd ` Befehl, um den aktuellen Verzeichnispfad anzuzeigen.
22) Erklären Sie den Unterschied zwischen if- und elif-Anweisungen beim Shell-Scripting.
| Besonderheit | `if`Staiftement | `elif`-Erklärung |
| Zweck | Erklären Sie den Unterschied zwischen if- und elif-Anweisungen beim Shell-Scripting. | Stellt alternative Bedingungen bereit, um zu überprüfen, ob die anfängliche If-Bedingung falsch ist. |
| Verwendung | Wird für den Anfangszustand verwendet. | Wird nach der anfänglichen if-Bedingung verwendet, um zusätzliche Bedingungen zu überprüfen. |
| Anzahl der Blöcke | Kann nur einen if-Block haben. | Kann mehrere elif-Blöcke haben, aber nur einen else-Block (optional). |
| Ausführung | Führt den mit der if-Anweisung verknüpften Codeblock aus, wenn die Bedingung wahr ist. Wenn die Bedingung falsch ist, wird der else-Block (falls vorhanden) ausgeführt (optional). | Überprüft jede Elif-Bedingung der Reihe nach. Wenn eine elif-Bedingung wahr ist, wird der entsprechende Codeblock ausgeführt und das Skript verlässt den gesamten bedingten Block. Wenn keine der elif-Bedingungen wahr ist, wird der else-Block (falls vorhanden) ausgeführt. |
| Verschachtelte Strukturen | Kann in anderen if-, elif- oder else-Blöcken verschachtelt werden. | Kann nicht in einem anderen elif-Block verschachtelt werden, kann aber in einem if- oder else-Block verwendet werden. |
Lassen Sie es uns anhand eines Beispiels verstehen.
#!/bin/bash
Zahl=5
if [ $number -gt 10 ]; Dann
echo $number ist größer als 10
anders
echo $number ist nicht größer als 10
Sei
Echo ——–
if [ $number -gt 10 ]; Dann
echo $number ist größer als 10
elif [ $number -eq 10 ]; Dann
echo $number ist gleich 10
anders
echo $number ist kleiner als 10
Sei
Erläuterung:
In diesem Beispiel prüft der erste if-Block, ob die Zahl größer als 10 ist. Wenn nicht, gibt er eine Meldung aus, die angibt, dass die Zahl nicht größer als 10 ist. Der zweite Block mit elif-Anweisungen prüft nacheinander mehrere Bedingungen, bis eine davon wahr ist. Da in diesem Fall der Wert von number 5 ist, lautet die Ausgabe:

if_elif Unterschied
23) Wie nutzt man eine While-Schleife, um Befehle wiederholt auszuführen?
Bei der Shell-Skripterstellung wird eine While-Schleife verwendet, um eine Reihe von Befehlen wiederholt auszuführen, solange eine bestimmte Bedingung erfüllt ist. Die Schleife führt die Befehle so lange aus, bis die Bedingung falsch wird.
Hier ist die grundlegende Syntax einer While-Schleife:
while [ Bedingung ]; Tun
# Auszuführende Befehle
Erledigt
Erläuterung:
- Die „while“-Schleife beginnt mit dem Schlüsselwort „while“, gefolgt von einer in eckigen Klammern eingeschlossenen Bedingung „[ ]“.
- Der Schleifenkörper, der die auszuführenden Befehle enthält, ist in die Schlüsselwörter „do“ und „done“ eingeschlossen.
- Die Schleife prüft zunächst die Bedingung. Wenn die Bedingung wahr ist, werden die Befehle im Schleifenkörper ausgeführt. Nachdem der Schleifenkörper ausgeführt wurde, wird die Bedingung erneut überprüft und der Vorgang wiederholt, bis die Bedingung falsch wird.
Beispiel: Wenn wir Zahlen von 1 bis 5 drucken möchten
#!/bin/bash
Zähler=1
while [ $counter -le 5 ]; Tun
Echo-Nummer: $counter
counter=$((counter + 1))
Erledigt
Erläuterung:
- Die Zählervariable wird auf 1 gesetzt.
- Die while-Schleife prüft, ob der Wert von counter kleiner oder gleich 5 ist. Solange diese Bedingung erfüllt ist, wird die Schleife weiter ausgeführt.
- Innerhalb der Schleife wird der aktuelle Wert des Zählers mithilfe von Echo ausgegeben.
- Der Zähler wird mit dem Ausdruck $((Zähler + 1)) um 1 erhöht.

while-Schleife
24) Erstellen Sie ein Shell-Skript, das alle leeren Dateien in einem Verzeichnis findet und auflistet.
Shell-Skript, mit dem Sie mithilfe der Befehle „find“ und „stat“ alle leeren Dateien in einem Verzeichnis suchen und auflisten können:
#!/bin/bash
Verzeichnis=$1″
if [ -z $directory ]; Dann
Echo-Nutzung: $0
Ausgang 1
Sei
Wenn [ ! -d $Verzeichnis ]; Dann
echo Fehler: „$directory“ ist kein gültiges Verzeichnis.
Ausgang 1
Sei
echo Leere Dateien im $directory:
finde $directory -type f -empty
Erläuterung:
- ` #!/bin/bash „: Dies wird als Shebang bezeichnet und weist das Betriebssystem an, die Bash-Shell zum Interpretieren und Ausführen des Skripts zu verwenden.
- ` Verzeichnis=$1″ `: Diese Zeile weist der Variablen ` das erste Befehlszeilenargument (bezeichnet mit $1) zu Verzeichnis `.
- ` if [ -z $directory ]; Dann `: Diese Zeile startet eine if-Anweisung, die prüft, ob das ` Verzeichnis ` Variable ist leer (-z testet auf eine leere Zeichenfolge).
- ` Echo-Nutzung: $0 `: Wenn das Verzeichnis leer ist, gibt diese Zeile eine Nutzungsmeldung aus, wobei ` 0 $ ` steht für den Namen des Skripts.
- ` Ausgang 1 `: Diese Zeile beendet das Skript mit dem Exit-Code ` 1 `, was auf einen Fehler hinweist.
- ` Sei `: Diese Zeile markiert das Ende des ` Wenn ` Aussage.
- ` Wenn [ ! -d $Verzeichnis ]; Dann `: Dies startet eine weitere if-Anweisung, um zu prüfen, ob das angegebene Verzeichnis existiert (` -D ` testet für ein Verzeichnis).
- ` echo Fehler: „$directory“ ist kein gültiges Verzeichnis. `: Wenn das angegebene Verzeichnis nicht existiert, gibt diese Zeile eine Fehlermeldung aus.
- ` Ausgang 1 `: Beendet das Skript mit dem Exit-Code ` 1 `.
- ` Sei `: Markiert das Ende des zweiten ` wenn` Stellungnahme.
- ` echo Leere Dateien im $directory: `: Wenn bisher alles gültig ist, gibt diese Zeile eine Meldung aus, die angibt, dass das Skript leere Dateien im angegebenen Verzeichnis auflistet.
- ` finde $directory -type f -empty `: Diese Zeile verwendet das ` finden ` Befehl zum Suchen nach leeren Dateien (` -leer `) vom Typ reguläre Dateien (` -Typ f `) im angegebenen Verzeichnis. Anschließend werden diese leeren Dateien aufgelistet.

Leere Dateien finden
Notiz : Wir müssen beim Ausführen des Skripts ein Verzeichnis als Argument angeben. Hier haben wir den Pfad des aktuellen Verzeichnisses home/jayeshkumar/ verwendet
25) Was ist der Zweck des Lesebefehls beim Shell-Scripting?
Mit dem Lesebefehl beim Shell-Scripting fragt das Skript Sie nach Informationen. Es ist, als würde Ihnen ein Computer eine Frage stellen und auf Ihre Antwort warten. Dies ist nützlich für Skripte, bei denen Sie etwas eingeben müssen oder wenn das Skript mit Informationen aus Dateien arbeiten muss. Der Lesebefehl hilft dem Skript, anzuhalten und auf Ihre Eingabe zu warten. Anschließend kann es diese Informationen verwenden, um weitere Aufgaben im Skript auszuführen.
Syntax des Lesebefehls:
read variable_name>
Beispiel : Wenn wir den Namen als Eingabe vom Benutzer verwenden möchten, um ihn zu drucken.
#!/bin/bash
echo Bitte geben Sie Ihren Namen ein:
Namen lesen
echo Hallo, $name!

lies nam
Zusammenfassend lässt sich sagen, dass der Lesebefehl verwendet wird, um Benutzereingaben oder Daten aus Dateien in Shell-Skripten zu erfassen, wodurch die Skripte interaktiver und vielseitiger werden.
26) Schreiben Sie ein Shell-Skript, das alle Dateinamen in einem Verzeichnis in Kleinbuchstaben umwandelt.
Hier ist ein Shell-Skript, das alle Dateinamen in einem Verzeichnis in Kleinbuchstaben umwandelt.
#!/bin/bash
Verzeichnis=$1″
if [ -z $directory ]; Dann
Echo-Nutzung: $0
Ausgang 1
Sei
Wenn [ ! -d $Verzeichnis ]; Dann
echo Fehler: „$directory“ ist kein gültiges Verzeichnis.
Ausgang 1
Sei
cd $verzeichnis || Ausgang 1
für Datei in *; Tun
if [ -f $file ]; Dann
newname=$(echo $file | tr ‚A-Z‘ ‚a-z‘)
[ $file != $newname ] && mv $file $newname
Sei
Erledigt
Erläuterung:
- #!/bin/bash : Dies ist der Knaller, der angibt, dass das Skript mithilfe der Bash-Shell interpretiert werden soll.
- Verzeichnis=$1″ : Diese Zeile weist das erste Befehlszeilenargument dem Variablenverzeichnis zu.
- if [ -z $directory ]; Dann : Diese Zeile prüft, ob die Verzeichnisvariable leer ist (kein Argument angegeben, wenn das Skript ausgeführt wird).
- Echo-Nutzung: $0 : Wenn das Verzeichnis leer ist, gibt diese Zeile eine Nutzungsmeldung mit dem Namen des Skripts ($0) aus.
- Ausgang 1 : Diese Zeile beendet das Skript mit dem Exit-Code 1, was darauf hinweist, dass ein Fehler aufgetreten ist.
- F i: Dies markiert das Ende der ersten if-Anweisung.
- Wenn [ ! -d $Verzeichnis ]; Dann : Diese Zeile prüft, ob das angegebene Verzeichnis nicht existiert (-d testet ein Verzeichnis).
- echo Fehler: „$directory“ ist kein gültiges Verzeichnis. : Wenn das angegebene Verzeichnis nicht existiert, gibt diese Zeile eine Fehlermeldung aus.
- Ausgang 1 : Beendet das Skript mit dem Exit-Code 1.
- Sei : Markiert das Ende der zweiten if-Anweisung.
- cd $verzeichnis || Ausgang 1 : Ändert das aktuelle Arbeitsverzeichnis in das angegebene Verzeichnis. Wenn der Verzeichniswechsel fehlschlägt (z. B. Verzeichnis nicht vorhanden), wird das Skript mit einem Fehlercode beendet.
- für Datei in *; Tun: ICH für Datei in *; Tun: löst eine Schleife aus, die alle Elemente im aktuellen Verzeichnis durchläuft (* entspricht allen Dateinamen).
- if [ -f $file ]; Dann : Überprüft, ob das aktuelle Schleifeniterationselement eine reguläre Datei ist (-f testet auf eine reguläre Datei).
- newname=$(echo $file | tr ‚A-Z‘ ‚a-z‘) : Wandelt den aktuellen Dateinamen ($file) mit dem Befehl tr in Kleinbuchstaben um und speichert das Ergebnis in der Variablen newname.
- [ $file != $newname ] && mv $file $newname : Vergleicht den ursprünglichen Dateinamen mit dem neuen Dateinamen in Kleinbuchstaben. Wenn sie unterschiedlich sind, wird die Datei mit dem Befehl mv umbenannt.
- Sei : Markiert das Ende der inneren if-Anweisung.
- Erledigt : Markiert das Ende der Schleife.

Notiz : Wir müssen beim Ausführen des Skripts ein Verzeichnis als Argument angeben. Hier haben wir den Pfad des aktuellen Verzeichnisses home/jayeshkumar/test verwendet
27) Wie können Sie arithmetische Operationen innerhalb eines Shell-Skripts verwenden?
Arithmetische Operationen können innerhalb eines Shell-Skripts mithilfe verschiedener integrierter Methoden ausgeführt werden. Die Shell bietet Mechanismen für einfache arithmetische Berechnungen mithilfe der arithmetischen Erweiterung wie:
- Arithmetische Erweiterung ($((…)))
- Verwenden des expr-Befehls
- Verwenden des let-Befehls
Hier ist unser Shell-Skript, das alle drei Methoden für arithmetische Operationen erklärt.
#!/bin/bash
num1=10
num2=5
#Arithmetische Erweiterung ($((…)))
Ergebnis=$((num1 + num2))
echo Summe: $result
#Verwenden des expr-Befehls
sum=$(expr $num1 + $num2)
echo Summe: $sum
#Verwenden des let-Befehls
sei sum = num1 + num2
echo Summe: $sum
Erläuterung:
- `#!/bin/bash` : Dies ist der Knaller, der angibt, dass das Skript mithilfe der Bash-Shell interpretiert werden soll.
- `num1=10` und ` num2=5` : Diese Zeilen weisen den Variablen ` die Werte 10 und 5 zu num1 ` und ` num2 ` bzw.
- `#Arithmetische Erweiterung ($((…)))` : Dies ist ein Kommentar, der den Anfang des Abschnitts angibt, der die arithmetische Erweiterung demonstriert.
- `result=$((num1 + num2))` : Diese Zeile verwendet eine arithmetische Erweiterung, um die Summe von ` zu berechnen num1 ` und ` num2 ` und speichert das Ergebnis im ` Ergebnis ` variabel.
- „echo Summe: $result“. : Diese Zeile gibt die berechnete Summe unter Verwendung des im ` gespeicherten Werts aus Ergebnis ` variabel.
- `#Verwenden des expr-Befehls` : Dies ist ein Kommentar, der den Anfang des Abschnitts angibt, der die Verwendung des „`“ demonstriert Ausdruck ` Befehl für arithmetische Operationen.
- `sum=$(expr $num1 + $num2)` : Diese Zeile verwendet das ` Ausdruck ` Befehl zur Berechnung der Summe von ` num1 ` und ` num2 ` und speichert das Ergebnis im ` Summe ` variabel. Beachten Sie, dass das ` Ausdruck Der Befehl ` erfordert Leerzeichen um die Operatoren.
- „Echo-Summe: $sum“. : Diese Zeile gibt die berechnete Summe unter Verwendung des im ` gespeicherten Werts aus Summe ` variabel.
- `#Verwenden des let-Befehls` : Dies ist ein Kommentar, der den Anfang des Abschnitts angibt, der die Verwendung des „`“ demonstriert lassen ` Befehl für arithmetische Operationen.
- `Lass Summe = num1 + num2″` : Diese Zeile verwendet das ` lassen ` Befehl zur Berechnung der Summe von ` num1 ` und ` num2 ` und weist das Ergebnis dem ` zu Summe ` variabel. Das ` lassen Für den Befehl ` sind keine Leerzeichen um die Operatoren erforderlich.
- „Echo-Summe: $sum“. : Diese Zeile gibt die berechnete Summe unter Verwendung des im ` gespeicherten Werts aus Summe ` variabel.

Arithmetik
28) Erstellen Sie ein Skript, das prüft, ob ein Netzwerkhost erreichbar ist.
Hier ist ein einfaches Shell-Skript, das mithilfe des Ping-Befehls prüft, ob ein Netzwerkhost erreichbar ist:
#!/bin/bash
host=$1″
if [ -z $host ]; Dann
Echo-Nutzung: $0
Ausgang 1
Sei
ping -c 4 $host
wenn [ $? -eq 0 ]; Dann
echo $host ist erreichbar.
anders
echo $host ist nicht erreichbar.
Sei
Erläuterung:
- Es nimmt einen Hostnamen oder eine IP-Adresse als Argument und prüft, ob das Argument angegeben wird.
- Wenn kein Argument angegeben wird, wird eine Nutzungsmeldung angezeigt und der Vorgang beendet.
- Es verwendet den Ping-Befehl mit der Option -c 4, um vier ICMP-Echo-Anfragen an den angegebenen Host zu senden.
- Nachdem der Ping-Befehl ausgeführt wurde, prüft er den Exit-Status ($?). Wenn der Exit-Status 0 ist, bedeutet dies, dass der Host erreichbar ist und das Skript eine Erfolgsmeldung ausgibt. Andernfalls wird eine Fehlermeldung ausgegeben.

Notiz : Wir müssen beim Ausführen des Skripts einen Hostnamen als Argument angeben. Hier haben wir google.com verwendet
29) Schreiben Sie ein Shell-Skript, um das größte Element in einem Array zu finden:
Hier ist ein Shell-Skript, um das größte Element in einem Array zu finden.
#!/bin/bash
# Deklarieren Sie ein Array
array=(3 56 24 89 67)
# Initialisieren Sie eine Variable, um den Maximalwert zu speichern, beginnend mit dem ersten Element
max=${array[0]}
# Durch das Array iterieren
für num in ${array[@]}; Tun
# Vergleichen Sie jedes Element mit dem aktuellen Maximum
if ((num> max)); Dann
max=$num
Sei
Erledigt
# Drucken Sie den Maximalwert aus
echo Das maximale Element im Array ist: $max
Erläuterung:
- ` #!/bin/bash `: Die Shebang-Zeile gibt an, dass das Skript mit der Bash-Shell interpretiert werden soll.
- ` array=(3 56 24 89 67) `: Das Array wird deklariert und mit Werten initialisiert.
- ` max=${array[0]} `: `max` wird mit dem ersten Element des Arrays initialisiert.
- ` für num in ${array[@]}; Tun „: Eine „for“-Schleife wird verwendet, um die Elemente des Arrays zu durchlaufen.
- ` if ((num> max)); Dann „: Eine „if“-Anweisung prüft, ob das aktuelle Element „num“ größer als das aktuelle Maximum „max“ ist.
- ` max=$num`: If`num ` ist größer als `max`, `max` wird mit dem Wert von num aktualisiert.
- ` Erledigt `: Die `for`-Schleife ist geschlossen.
- ` echo Das maximale Element im Array ist: $max `: Abschließend gibt das Skript den im Array gefundenen Maximalwert aus.

größte Zahl
30) Schreiben Sie ein Skript, um die Summe der Elemente in einem Array zu berechnen.
#!/bin/bash
# Deklarieren Sie ein Array
array=(1 65 22 19 94)
# Initialisieren Sie eine Variable, um die Summe zu speichern
Summe=0
# Durchlaufen Sie das Array und fügen Sie jedes Element zur Summe hinzu
für num in ${array[@]}; Tun
am=$((am + am))
Erledigt
# Drucken Sie die Summe aus
echo Die Summe der Elemente im Array ist: $sum
Erläuterung:
` #!/bin/bash `: Die Shebang-Zeile gibt an, dass das Skript mit der Bash-Shell interpretiert werden soll.
` array=(1 65 22 19 94) `: Das Array wird deklariert und mit Werten initialisiert.
` Summe=0 `:` Summe ` wird auf Null initialisiert, um die Summe der Elemente zu speichern.
` für num in ${array[@]}; Tun `: A` für Die Schleife wird verwendet, um die Elemente des Arrays zu durchlaufen.
` am=$((am + am)) `: Innerhalb der Schleife jedes Element ` Auf eins ` wird dem ` hinzugefügt Summe ` variabel.
` Erledigt `: Das ` für ` Schleife ist geschlossen.
„echo Die Summe der Elemente im Array ist: $sum“: Schließlich gibt das Skript die Summe aller Elemente im Array aus.

Summe der Elemente
Erfahren Sie mehr über Shell-Skripte
Abschluss
Wir alle wissen, dass Shell-Skripte sehr nützlich sind, um die Arbeitsproduktivität zu steigern und auch Zeit zu sparen. In diesem Artikel haben wir es also behandelt 30 sehr nützliche und am meisten betrügerische Beispiele für Shell-Skripte . Wir hoffen, dass diese vollständige Anleitung zum Beispiel für Shell-Skripte Ihnen hilft, alles über die Shell-Skripte zu verstehen.
Ausgang 1
Sei
ping -c 4 $host
wenn [ $? -eq 0 ]; Dann
echo $host ist erreichbar.
anders
echo $host ist nicht erreichbar.
Sei
Erläuterung:
- Es nimmt einen Hostnamen oder eine IP-Adresse als Argument und prüft, ob das Argument angegeben wird.
- Wenn kein Argument angegeben wird, wird eine Nutzungsmeldung angezeigt und der Vorgang beendet.
- Es verwendet den Ping-Befehl mit der Option -c 4, um vier ICMP-Echo-Anfragen an den angegebenen Host zu senden.
- Nachdem der Ping-Befehl ausgeführt wurde, prüft er den Exit-Status ($?). Wenn der Exit-Status 0 ist, bedeutet dies, dass der Host erreichbar ist und das Skript eine Erfolgsmeldung ausgibt. Andernfalls wird eine Fehlermeldung ausgegeben.

Notiz : Wir müssen beim Ausführen des Skripts einen Hostnamen als Argument angeben. Hier haben wir google.com verwendet
29) Schreiben Sie ein Shell-Skript, um das größte Element in einem Array zu finden:
Hier ist ein Shell-Skript, um das größte Element in einem Array zu finden.
#!/bin/bash
# Deklarieren Sie ein Array
array=(3 56 24 89 67)
# Initialisieren Sie eine Variable, um den Maximalwert zu speichern, beginnend mit dem ersten Element
max=${array[0]}
# Durch das Array iterieren
für num in ${array[@]}; Tun
# Vergleichen Sie jedes Element mit dem aktuellen Maximum
if ((num> max)); Dann
max=$num
Sei
Erledigt
# Drucken Sie den Maximalwert aus
echo Das maximale Element im Array ist: $max
Erläuterung:
- ` #!/bin/bash `: Die Shebang-Zeile gibt an, dass das Skript mit der Bash-Shell interpretiert werden soll.
- ` array=(3 56 24 89 67) `: Das Array wird deklariert und mit Werten initialisiert.
- ` max=${array[0]} `: `max` wird mit dem ersten Element des Arrays initialisiert.
- ` für num in ${array[@]}; Tun „: Eine „for“-Schleife wird verwendet, um die Elemente des Arrays zu durchlaufen.
- ` if ((num> max)); Dann „: Eine „if“-Anweisung prüft, ob das aktuelle Element „num“ größer als das aktuelle Maximum „max“ ist.
- ` max=$num`: If`num ` ist größer als `max`, `max` wird mit dem Wert von num aktualisiert.
- ` Erledigt `: Die `for`-Schleife ist geschlossen.
- ` echo Das maximale Element im Array ist: $max `: Abschließend gibt das Skript den im Array gefundenen Maximalwert aus.

größte Zahl
30) Schreiben Sie ein Skript, um die Summe der Elemente in einem Array zu berechnen.
#!/bin/bash
# Deklarieren Sie ein Array
array=(1 65 22 19 94)
# Initialisieren Sie eine Variable, um die Summe zu speichern
Summe=0
q2 Monate
# Durchlaufen Sie das Array und fügen Sie jedes Element zur Summe hinzu
für num in ${array[@]}; Tun
am=$((am + am))
Erledigt
# Drucken Sie die Summe aus
echo Die Summe der Elemente im Array ist: $sum
Erläuterung:
` #!/bin/bash `: Die Shebang-Zeile gibt an, dass das Skript mit der Bash-Shell interpretiert werden soll.
` array=(1 65 22 19 94) `: Das Array wird deklariert und mit Werten initialisiert.
` Summe=0 `:` Summe ` wird auf Null initialisiert, um die Summe der Elemente zu speichern.
` für num in ${array[@]}; Tun `: A` für Die Schleife wird verwendet, um die Elemente des Arrays zu durchlaufen.
` am=$((am + am)) `: Innerhalb der Schleife jedes Element ` Auf eins ` wird dem ` hinzugefügt Summe ` variabel.
` Erledigt `: Das ` für ` Schleife ist geschlossen.
„echo Die Summe der Elemente im Array ist: $sum“: Schließlich gibt das Skript die Summe aller Elemente im Array aus.

Summe der Elemente
Erfahren Sie mehr über Shell-Skripte
Abschluss
Wir alle wissen, dass Shell-Skripte sehr nützlich sind, um die Arbeitsproduktivität zu steigern und auch Zeit zu sparen. In diesem Artikel haben wir es also behandelt 30 sehr nützliche und am meisten betrügerische Beispiele für Shell-Skripte . Wir hoffen, dass diese vollständige Anleitung zum Beispiel für Shell-Skripte Ihnen hilft, alles über die Shell-Skripte zu verstehen.