GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Bash-Skripting-Tutorial für Anfänger:Was es ist, wie man eines schreibt und Skriptbeispiele

Wenn Sie jemals ein Linux-Betriebssystem wie die meisten virtuellen privaten Server verwendet haben, haben Sie vielleicht schon von Bash gehört. Es ist eine Unix-Shell, die verschiedene Befehle liest und ausführt.

Wenn Sie mehrere Bash-Befehle ausführen müssen, müssen Sie sie nicht einzeln manuell ausführen. Stattdessen ist es möglich, eine Skriptdatei zu erstellen, die Bash-Funktionen enthält, um diese Befehle auszuführen.

Es mag kompliziert klingen, aber wenn Sie die Grundlagen lernen, werden Sie die Bash-Skriptsprache verstehen und herausfinden, wie sie Ihren Arbeitsablauf unterstützen kann.

Dieser Artikel behandelt den Prozess der Bash-Skripterstellung. Wir gehen alles durch, von Bash-Befehlen bis hin zum Ausführen eines Bash-Programms auf einem Linux-Terminal.

Was ist Bash?

Bash, kurz für Bourne-Again Shell , ist eine Unix-Shell und ein Befehlsspracheninterpreter. Es liest Shell-Befehle und interagiert mit dem Betriebssystem, um sie auszuführen.

Um Bash-Shell-Scripting vollständig zu verstehen, müssen Sie zwei Konzepte kennen – Shell und Scripting .

Shell ist ein Makroprozessor, der Befehle verwendet, um mit dem Betriebssystem zu interagieren. Das bedeutet, dass es Informationen auf einem Computer abrufen, verarbeiten und speichern kann.

Unterdessen ist Scripting der Vorgang, Shell-Befehle mit einem Texteditor in eine neue Datei zu kompilieren.

Wenn Sie Bash in einem Texteditor schreiben, kompilieren Sie Bash-Befehle oderBash-Funktionen – eine Reihe von Befehlen, die mehrmals aufgerufen werden können, indem nur der Funktionsname verwendet wird. Der Text wird dann als ausführbares Bash-Skript gespeichert Datei mit der .sh Verlängerung.

Warum Bash-Skripting verwenden?

Bash-Skripte können Ihren Arbeitsablauf unterstützen, da sie viele lange Befehle in eine einzige ausführbare Skriptdatei kompilieren.

Wenn Sie beispielsweise mehrere Befehle haben, die Sie in einem bestimmten Zeitintervall ausführen müssen, können Sie ein Bash-Skript kompilieren, anstatt die Befehle einzeln manuell einzugeben und auszuführen. Sie müssen die Skriptdatei nur ausführen, wenn es notwendig ist.

Hier sind einige weitere Vorteile der Verwendung von Bash-Skripten:

  • Gut strukturierte Befehle – Strukturieren Sie die Befehle in einer Reihenfolge, sodass jedes Mal, wenn Sie das Skript ausführen, es in der richtigen Reihenfolge ausgeführt wird.
  • Aufgabenautomatisierung – Automatisieren Sie die Skriptausführung zu einem beliebigen definierten Zeitpunkt mit dem zeitbasierten Zeitplaner von Cron.
  • Transparenz – Benutzer können den Inhalt eines Skripts überprüfen, da es sich um eine lesbare Textdatei handelt. Wenn Sie die Befehle jedoch mit einem anderen Programm ausführen, das in einer anderen Programmiersprache wie C++ geschrieben ist, müssen Sie auf den Quellcode zugreifen.
  • Übertragbar – Wenn Sie ein Skript auf andere Linux-Distributionen übertragen, funktioniert es immer noch, vorausgesetzt, dass Shell-Befehle auf diesem bestimmten Betriebssystem verfügbar sind.

Machen Sie sich mit Bash-Befehlen vertraut

Bash ist auf fast allen Arten von Unix-basierten Betriebssystemen verfügbar und erfordert keine separate Installation. Sie benötigen eine Linux-Befehlszeile, auch als Linux-Terminal bekannt. Es ist ein Programm, das die Shell enthält und Sie Bash-Skripte ausführen lässt.

Verwenden Sie diesen Befehl, um die Liste der verfügbaren Shells auf Ihrem Unix-Betriebssystem zu überprüfen:

cat /etc/shells

Die Ausgabe sollte eine Liste wie diese zeigen:

/bin/bash
/bin/sh
/bin/tcsh
/bin/csh

Jedes Bash-Shell-Skript muss mit # beginnen! gefolgt vom absoluten Pfad zum Bash-Interpreter. Um den Pfad anzuzeigen, geben Sie diesen Befehl ein:

which bash

Es sollte die folgende Ausgabe erzeugen:

/bin/bash

Dies ist der Standardpfad zum Bash-Interpreter auf den meisten Unix-Betriebssystemen. Um der Shell mitzuteilen, dass sie Befehle mit dem Bash-Interpreter ausführen soll, starten Sie das Skript mit dieser Zeile:

#!/bin/bash

Wichtig! Wenn Sie Bash-Skripte auf einem virtuellen privaten Server ausführen möchten, stellen Sie über einen SSH-Client eine Verbindung zu ihm her.

Der nächste Schritt besteht darin, die Befehle in eine .sh zu schreiben und zu kompilieren Datei mit einem Texteditor. Sie benötigen einen Unix-Texteditor wie VIM oder GNU Nano. In diesem Tutorial verwenden wir den Nano Texteditor, um die Datei zu erstellen, indem Sie diesen Befehl eingeben:

nano function.sh

Dies öffnet eine neue .sh Datei, die Sie bearbeiten können. Schreiben Sie zunächst #!/bin/bash gefolgt von Bash-Befehlen.

Wichtig! Wenn Sie mit der Verwendung des Nano-Texteditors fertig sind, drücken Sie Strg+X um es zu schließen, drücken Sie dann Y und Enter um die Änderungen zu speichern.

Grundlegende Bash-Befehle für Ihr erstes Bash-Skript

Um Ihr erstes Bash-Skript erfolgreich zu erstellen, müssen Sie die wesentlichen Bash-Befehle verstehen. Sie sind die Hauptelemente eines Skripts, und Sie müssen wissen, was sie tun und wie man sie richtig schreibt.

Unter Linux gibt es viele Bash-Befehle. Zu Beginn behandeln wir sieben grundlegende.

1. Kommentare

Kommentare enthalten eine Beschreibung zu bestimmten Zeilen im Skript. Das Terminal analysiert Kommentare während der Ausführung nicht, sodass sie die Ausgabe nicht beeinflussen.

Es gibt zwei Möglichkeiten, einem Skript Kommentare hinzuzufügen. Die erste Methode ist die Eingabe von # am Anfang eines einzeiligen Kommentars.

#!/bin/bash
#Command below prints a Hello World text
echo “Hello, world!”

Die zweite Methode ist die Verwendung von : gefolgt von . Diese Methode funktioniert für mehrzeilige Kommentare.

#!/bin/bash
read a
: ‘ 
The following commands prints
Hello, world!
‘
echo “Hello, World!”

2. Variablen

Variablen sind Symbole, die ein Zeichen, Zeichenfolgen oder Zahlen darstellen. Sie müssen nur den Variablennamen in eine Befehlszeile eingeben, um die definierten Zeichenfolgen oder Zahlen zu verwenden.

Um eine Variable zuzuweisen, geben Sie den Variablennamen und den Zeichenfolgenwert wie hier ein:

testvar=“This is a test variable”

In diesem Fall testvar will ist der Variablenname und Dies ist eine Testvariable ist der Stringwert. Bei der Zuweisung einer Variablen empfehlen wir, einen Variablennamen zu verwenden, der leicht zu merken ist und ihren Wert darstellt.

Um den Variablenwert in der Befehlszeile zu lesen, verwenden Sie $ Symbol vor dem Variablennamen. Sehen Sie sich das folgende Beispiel an:

#!/bin/bash
testvar=“This is a test variable”
echo $testvar

Die zweite Befehlszeile verwendet echo um den Wert von testvar auszudrucken . Die Ausgabe dieses Skripts ist:

This is a test variable

Sehen wir uns an, wie Sie einen String-Wert mit read eingeben können Befehl und lassen Sie das Skript zwei Zeichenfolgenwerte aus verschiedenen Variablen vergleichen:

#!/bin/bash
echo “Enter a number” 
read a #The user input in this command line will be stored as variable a
b=50 #The value of variable b
if [[$a -eq $b]]
then
echo “Same number”
else
echo “Different number”
fi

Die Ausgabe dieses Skripts sollte wie folgt aussehen:

Enter a number
20
Different number

Beachten Sie Zeile 3 ist der Wert, der zur Variablen a wird .

Das Skript vergleicht die Variable a mit dem Wert 20 und die Variable b mit dem Wert 50 . Da die Werte unterschiedlich sind, gibt das Skript Different number aus .

Wenn der Benutzer jedoch 50 eingibt , das ist die Ausgabe:

Enter a number
50
Same number

Dieses Beispiel verwendet auch bedingte Anweisungen, die wir später besprechen werden.

3. Echo-Befehl

Echo ist ein bekannter Befehl, der in vielen Programmiersprachen verwendet wird. Es gibt verschiedene Optionen, die Sie mit Echo verwenden können, um die Ausgabe auf dem Terminal zu drucken.

Die erste und häufigste Verwendung von Echo ist die Ausgabe von Standardtext:

#!/bin/bash
echo “Hello, world!”

Die Ausgabe dieses Befehls ist Hello, World! Wenn Sie den Echo-Befehl wie diesen verwenden, fügt das Terminal standardmäßig eine neue Zeile darunter ein. Wenn Sie eine Ausgabe ohne Zeilenumbruch echoen möchten, können Sie dies mit -n tun .

#!/bin/bash
echo -n “Hello, world!”

Verwenden Sie die Option \n um einen Zeilenumbruch in die Ausgabe einzufügen. So aktivieren Sie den Backslash (\) , müssen Sie -e einfügen .

#!/bin/bash
echo -e “Hello, \nworld!”

Die Ausgabe dieses Befehls sieht folgendermaßen aus:

Hello,
world!

Die Option \t fügt einen horizontalen Tabstopp hinzu:

#!/bin/bash
echo -e “\tHello, world!”

Die Ausgabe dieses Befehls wird den Text nach rechts einrücken:

        Hello, world!

Sie können auch mehrere Optionen kombinieren. Kombinieren Sie beispielsweise \n und \t um den Text in Zeilen aufzuteilen und nach rechts einzurücken:

#!/bin/bash
echo -e “\n\tHello, \n\tworld!”

Die Ausgabe dieses Befehls sieht folgendermaßen aus:

      Hello,
      world!      

4. Funktionen

Eine Funktion stellt eine Reihe von Befehlen in einer Gruppe zusammen. Wenn Sie den Befehl erneut ausführen müssen, schreiben Sie einfach die Funktion anstelle des gesamten Befehlssatzes.

Es gibt mehrere Möglichkeiten, Funktionen zu schreiben.

Die erste Möglichkeit besteht darin, mit dem Funktionsnamen zu beginnen und ihm Klammern und Klammern zu folgen:

function_name () {
first command
second command
}

Oder, wenn Sie es in einer einzigen Zeile schreiben möchten:

function_name () { first command; second command; }

Die zweite Methode zum Schreiben einer Funktion ist die Verwendung des reservierten Wortes function gefolgt vom Funktionsnamen. Dadurch entfällt die Notwendigkeit von Klammern:

function function_name {
first command
second command
}

Diese Methode hat auch eine einzeilige Version:

function function_name { first command; second command; }

Zum Beispiel können wir zwei Funktionen mit mehreren echo schreiben Befehle:

#!/bin/bash
hello_world () {
echo “Hello, World!”
echo “This is a test function”
}
print_message () {
echo “Let’s learn bash programming”
echo “Enjoy this tutorial”
}

Beachten Sie, dass das Schreiben der Funktionen wie im obigen Beispiel sie nur definiert und die enthaltenen Befehle nicht ausführt. Um eine Funktion auszuführen, geben Sie ihren Namen in die Befehlszeile ein.

Lassen Sie uns nun die beiden obigen Beispiele in einer vollständigen Bash-Funktion verwenden, einschließlich ihrer Ausführung:

#!/bin/bash
#Define a hello world function
hello_world () {
echo “Hello, World!”
echo “This is a test function”
}
#Define a print message function
print_message () {
echo “Let’s learn bash programming”
echo “Enjoy this tutorial”
}
#Execute the hello world function
hello_world
#Execute the print message function
print_message

Dies ist die Ausgabe des obigen Skripts:

Hello, World!
This is a test function
Let’s learn bash programming
Enjoy this tutorial

5. Schleifen

Schleifen-Bash-Befehle sind nützlich, wenn Sie Befehle mehrmals ausführen möchten. Es gibt drei Typen davon, die Sie in Bash ausführen können – for , während , und bis .

Das für Schleife führt den Befehl für eine Liste von Elementen aus:

#!/bin/bash
for item in [list]
do
[commands]
done

Im folgenden Beispiel wird ein for verwendet Schleife zum Drucken aller Wochentage:

#!/bin/bash
for days in Monday Tuesday Wednesday Thursday Friday Saturday Sunday
do
echo “Day: $days”
done

Auf Linie 2 , "Tage" wird automatisch zu einer Variablen, wobei die Werte die folgenden Tagesnamen sind. Dann im Echo verwenden wir das $ Symbol zum Aufrufen der Variablenwerte.

Die Ausgabe dieses Skripts sieht wie folgt aus:

Day: Monday
Day: Tuesday
Day: Wednesday
Day: Thursday
Day: Friday
Day: Saturday
Day: Sunday

Beachten Sie, dass selbst mit nur einer Befehlszeile im Schleifenskript sieben echo ausgegeben werden Ausgänge.

Der nächste Schleifentyp ist while . Das Skript wertet eine Bedingung aus. Wenn die Bedingung wahr ist , werden die Befehle so lange ausgeführt, bis die Ausgabe die definierte Bedingung nicht mehr erfüllt.

#!/bin/bash
while [condition]
do
[commands]
done

Schauen wir uns ein einfaches Beispiel an, das eine Variable und einen Inkrementoperator beinhaltet, die als ((++)) bezeichnet werden :

#!/bin/bash
i=0
while [ $i -le 5 ]
do 
echo $i
((i++))
done

Die Variable beginnt mit einer 0 Wert, und der Inkrementoperator erhöht ihn um eins. Der Bedingungssatz ist kleiner oder gleich fünf, sodass der Befehl so lange iteriert, bis die Ausgabe fünf erreicht. Die Ausgabe dieses Skripts sieht wie folgt aus:

0
1
2
3
4
5

Der letzte Schleifentyp, until , ist das Gegenteil von while . Es wird den Befehl wiederholen, bis die Bedingung wahr wird.

Wenn wir die gleiche Ausgabe wie while wollen Beispiel oben mit bis Schleife können wir das Skript so schreiben:

#!/bin/bash
i=0
until [ $i -gt 5 ]
do 
echo $i
((i++))
done

Nun wird dieser Befehl wiederholt, bis der Ausgabewert fünf erreicht. Die Ausgabe ist dieselbe wie in unserem Beispiel mit while Schleife:

0
1
2
3
4
5

6. Bedingte Anweisungen

Viele Programmiersprachen, einschließlich Bash, verwenden bedingte Anweisungen wie if , dann , und sonst zur Entscheidungsfindung. Sie führen Befehle aus und geben abhängig von den Bedingungen Ausgaben aus.

Das wenn Auf die Anweisung folgt ein bedingter Ausdruck. Danach folgt then und den Befehl zum Definieren der Ausgabe der Bedingung. Das Skript führt den Befehl aus, wenn die in if ausgedrückte Bedingung erfüllt ist Aussage ist wahr.

Wenn Sie jedoch einen anderen Befehl ausführen möchten, wenn die Bedingung falsch ist, fügen Sie ein else hinzu -Anweisung an das Skript und folgen Sie ihr mit dem Befehl.

Werfen wir einen Blick auf das einfache if , dann , und sonst Aussagen. Vor der Anweisung fügen wir eine Variable ein, damit der Benutzer einen Wert eingeben kann:

#!/bin/bash
echo “Enter a number”
read num
if [[$num -gt 10]]
then
echo “The number is greater than 10”
else
echo “The number is not greater than 10”

7. Dateien lesen und schreiben

Es gibt mehrere Methoden zum Lesen einer Datei, mit der Katze Befehl ist der beliebteste. Beachten Sie, dass dieser Befehl das Ganze liest Dateiinhalt.

Um den Inhalt zeilenweise zu lesen, verwenden Sie das lesen Befehl und eine Schleife. Stellen Sie vor dem Schreiben eines Skripts zum Lesen einer Datei sicher, dass die Datei zuerst existiert.

Im folgenden Beispiel haben wir eine to-do.txt Datei, die eine Aufgabenliste enthält:

Reply email
Finish report
Call clients
Team evaluation

Wir verwenden die Katze und lesen Befehle in unserer Bash-Funktion, um den Inhalt der to-do.txt zu lesen und auszudrucken Datei. Der erste Teil des Skripts verwendet die Katze Befehl, während der zweite Teil den read verwendet Befehl in einer Schleife.

#!/bin/bash
echo “Reading the file using cat command”
content=’cat to-do.txt’
echo $content
echo “Reading the file using read command and loop”
filename=’to-do.txt’
while read line
do
echo $line
done<$filename

Die Ausgabe des Skripts sieht wie folgt aus:

Reading the file using cat command
Reply email Finish report Call clients Team evaluation
Reading the file using read command and loop
Reply email
Finish report
Call clients
Team evaluation

Um eine Befehlsausgabe in eine Datei zu schreiben, verwenden Sie die Umleitungsoperatoren, dargestellt durch > und >> Symbolen und folgen Sie ihnen mit dem Dateinamen:

output > filename
output >> filename

Seien Sie vorsichtig bei der Auswahl des Betreibers. Wenn die Datei vorhanden ist, wird die Datei > Der Operator überschreibt seinen Inhalt mit einer Zeichenfolge der Länge Null. Dies bedeutet, dass Sie den vorhandenen Dateiinhalt verlieren. Wenn der eingegebene Dateiname nicht existiert, wird er erstellt.

Die >> Der Operator hingegen fügt die Ausgabe der angegebenen Datei hinzu.

Hier ist eine einfache Umleitung, um die Ausgabe in eine Textdatei zu schreiben:

echo “Hello, world!” >> hello_world.txt

Die Umleitung funktioniert auch mit read Befehl zum Schreiben beliebiger Benutzereingaben. Dieses Skriptbeispiel fügt den Eingabewert in die name.txt ein Datei:

#!/bin/bash
echo “Enter your name”
read Name
echo $Name >> name.txt

Da das Skript die Variablenausgabe in die Datei umleitet, sehen Sie keine gedruckte Ausgabe. Um die Ausgabe durch Drucken des Dateiinhalts anzuzeigen, fügen Sie die folgende Befehlszeile hinzu, um die Datei zu lesen:

echo ‘cat name.txt’

Stellen Sie sicher, dass Sie die Berechtigung zum Lesen und Schreiben in der Datei haben, um zu verhindern, dass Berechtigung verweigert wird Error. Wenn Sie die Ausgabe zu vorhandenen Dateien hinzufügen möchten, stellen Sie sicher, dass Sie die richtigen Dateinamen eingeben.

4 einfache Funktionen zum Ausprobieren Ihres ersten Bash-Skripts

Nachdem wir nun einige Bash-Befehle kennen, sehen wir uns grundlegendere Bash-Funktionsbeispiele für Ihr erstes Skript an.

Wie bereits erwähnt, verwenden Sie zum Schreiben einer Bash-Skriptdatei den Befehl nano filename.sh, um eine .sh zu erstellen und zu öffnen Datei und beginnen Sie mit dem Schreiben Ihrer Bash-Funktionen. Vergessen Sie nicht, die Datei zu beenden und zu speichern, wenn Sie fertig sind.

Beginne mit einer einfachen Echofunktion

Beginnen wir mit einer einfachen Echo-Funktion. Beginnen Sie damit, den Funktionsnamen zu definieren, gefolgt vom echo-Befehl in der nächsten Zeile, genau wie im folgenden Beispiel:

#!/bin/bash
testfunction () {
echo “My first function”
}
testfunction

Speichern Sie dieses Skript in testFunction.sh . Wenn Sie das Skript auf der Befehlszeile ausführen, sollten Sie die folgende Ausgabe sehen:

My first function

Denken Sie daran, dass das Vertauschen der Position der Funktionsdefinition mit dem Funktionsaufruf zu einem Fehler führt. Sehen wir uns das folgende Beispiel an:

#!/bin/bash
testfunction
testfunction(){
echo “My first function”
}

Dieser Ausschnitt funktioniert nicht. Es ruft die Funktion in der zweiten Befehlszeile auf und definiert die Funktion später. In diesem Fall kann der Interpreter die Funktion nicht finden, wenn er das Skript ausführt, was zu einem Befehl nicht gefunden führt Fehler.

Einige Parameter verwenden

Bash-Funktionen akzeptieren eine beliebige Anzahl von Parametern. Das folgende Beispiel akzeptiert zwei Parameter:

#!/bin/bash
testfunction () {
echo $1
echo $2
}
testfunction “Hello” “World”

$1 stellt das erste Argument dar, während $2 stellt das zweite Argument in der Funktionsausführungszeile dar. Wie wir "Hallo" verwendet haben und "Welt" für die Argumente sieht die Ausgabe so aus:

Sie können auch die Befehlszeilenargumente verwenden und Bash-Funktionen ausführen. Ein solches Beispiel wird unten gezeigt:

#!/bin/bash
addition () {
sum=$(($1+$2))
return $sum
}
read -p "Enter a number: " int1
read -p "Enter a number: " int2
addition $int1 $int2
echo "The result is : " $?

Der Zusatz wird in einer Variablen Summe zugewiesen , und dies wird von der Funktion zurückgegeben. Bash-Funktionen geben immer einen einzelnen Wert zurück. Benutzereingaben werden mit read entgegengenommen für beide Nummern. Abschließend wird das Ergebnis mit $? ausgegeben die den Rückgabewert $sum speichert aus der Funktion.

Verzeichnisse erstellen und Pfade ändern

Schauen wir uns nun ein weiteres Funktionsbeispiel an, in dem wir zuerst ein Verzeichnis erstellen und dann den Pfad so ändern, dass er auf einen neuen Speicherort zeigt. Diese Funktion enthält mkdir und CD Linux-Befehle zum Erstellen eines neuen Verzeichnisses und Ändern des aktuellen Verzeichnisses:

#!/bin/bash
sampleFunction () {
mkdir -p $1
cd $1
}
sampleFunction myDir

Die Funktion liest das erste Argument und erstellt ein Verzeichnis mit diesem Namen. Nachdem Sie das Skript ausgeführt haben, überprüfen Sie den aktuellen Arbeitspfad mit dem pwd Befehl auf dem Terminal. Sie werden sehen, dass Sie sich derzeit im neu erstellten myDir befinden .

Schleifen und Bedingungen kombinieren

Schleifen und bedingte Anweisungen sind auch beim Bash-Skripting beliebt. Wir sehen uns einige Fälle an, in denen beide im selben Skript verwendet werden:

#!/bin/bash
isvalid=true
count=1
while [ $isvalid ]
do
echo $count
if [ $count -eq 5 ];
then
break
fi
((count++))
done

Das obige Beispiel verwendet while und wenn Aussagen. Dies führt das while aus Schleife fünfmal nach Überprüfung der bedingten Anweisung.

Die Ausgabe dieses Skripts ist:

1
2
3
4
5

Das für Schleife kann die Zähler inkrementieren und dekrementieren. Ein Beispiel für ein for Schleife ist unten gezeigt:

#!/bin/bash
for (( count=10; count>0; count-- ))
do
echo -n "$count "
done

Die Ausgabe dieser for-Schleife sollte sein:

10 9 8 7 6 5 4 3 2 1

Mit wenn -Anweisungen können wir auch else if definieren indem Sie elif verwenden Aussage:

#!/bin/bash
echo "Enter a valid number"
read n
if [ $n -eq 101 ];
then
echo "This is the first number"
elif [ $n -eq 510 ];
then
echo "This is the second number"
elif [ $n -eq 999 ];
then
echo "This is the third number"
else
echo "No numbers over here"
fi

Wir können dieses Skript auch mit der Groß-/Kleinschreibung schreiben Erklärung. Im Fall Anweisungen, ;; stellt einen Fallwechsel dar, wenn also der Variablenwert eine der Bedingungen erfüllt, springt er zum Ende des Skripts:

#!/bin/bash
echo "Enter a valid number"
read n
case $n in
101)
echo "This is the first number" ;;
510)
echo "This is the second number" ;;
999)
echo "This is the third number" ;;
*)
echo "No numbers over here" ;;
esac

So führen Sie ein Bash-Skript aus

Nachdem wir nun ein Bash-Skript geschrieben haben, lernen wir, wie es vom Terminal aus ausgeführt wird. Dafür gibt es drei Methoden – mit der bash Befehl mit ./ Befehl und Ausführen des Skripts aus einem anderen Verzeichnis.

Verwendung des Bash-Befehls

Die erste Methode ist die Verwendung der bash Befehl aus dem entsprechenden Verzeichnis. Sie könnten beispielsweise eine function.sh haben Bash-Skript, das einfache Echofunktionen in Test/Bash enthält Verzeichnis. Sie müssen das Verzeichnis zuerst mit diesem Befehl öffnen:

cd Test/Bash

Führen Sie dann die folgende Bash aus Befehl zum Ausführen des Bash-Skripts:

bash function.sh

Sie sollten die Ausgabe so sehen:

Wenn Sie versuchen, das Skript ohne die bash auszuführen Befehl erhalten Sie die Meldung Befehl nicht gefunden Fehlermeldung.

Mit dem ./-Befehl

Sie können ein Bash-Skript ohne Bash ausführen Befehl. Sie müssen die Datei jedoch so einstellen, dass sie ausgeführt wird Berechtigung mit dem folgenden Befehl aus dem entsprechenden Verzeichnis:

chmod +x function.sh

Dieser Befehl ändert die Dateiberechtigungen, sodass jeder die Datei ausführen kann. Sobald Sie das getan haben, führen Sie das Bash-Skript mit diesem Befehl aus:

./function.sh

Wenn Sie die Berechtigung nicht korrekt festlegen, druckt das Terminal eine Berechtigung verweigert Fehlermeldung:

Wie die bash Befehl erhalten Sie auch die Meldung Befehl nicht gefunden Fehler, wenn Sie ./ nicht verwenden in Ihrem Befehl.

Führen Sie das Skript aus einem anderen Verzeichnis aus

Eine andere Alternative besteht darin, das Skript aus einem anderen Verzeichnis auszuführen. Verwenden Sie nach dem Erstellen des Bash-Skripts das pwd Befehl, um Ihr aktuelles Verzeichnis zu finden. Sobald Sie den Pfad kennen, können Sie das Skript von jedem Verzeichnis aus ausführen. Verwenden Sie beispielsweise den folgenden Befehl, um function.sh auszuführen aus dem Home-Verzeichnis:

bash Test/Bash/function.sh

Fazit

Bash liest Shell-Befehle und interagiert mit dem Betriebssystem, um sie auszuführen. Der großartige Aspekt von Bash ist, dass Sie viele Bash-Befehle und -Funktionen in ein einziges ausführbares Skript kompilieren können, was Ihnen hilft, Ihren Arbeitsablauf zu optimieren.

Um eine Bash-Skriptdatei zu erstellen, müssen Sie die verschiedenen Shell-Befehle und ihre korrekte Syntax verstehen. In diesem Tutorial haben wir sieben grundlegende Befehle behandelt:

  • Kommentare
  • Variablen
  • Echo
  • Funktionen
  • Schleifen
  • Bedingte Anweisungen
  • Dateien lesen und schreiben

Es gibt jedoch noch viel mehr zu lernen, wenn Sie das volle Potenzial von Bash nutzen möchten. Üben Sie mit den Beispielen, die wir bereitgestellt haben, und erkunden Sie Bash weiter, damit Sie bessere und effizientere Skripte schreiben können.

Wir haben die drei Möglichkeiten zum Ausführen eines Bash-Skripts behandelt. Wenn Sie Fragen oder Kommentare haben, hinterlassen Sie diese im Abschnitt unten.


Linux
  1. So schreiben Sie ein Bash-Skript mit Beispielen

  2. Bash For Loop Guide und Beispiele

  3. Linux-CD-Befehls-Tutorial für Anfänger (8 Beispiele)

  4. Beispiele für Bash-For- und While-Schleifen

  5. Wie schreibe ich ein Bash-Skript oder automatisiere das offene vi und bearbeite das Dokument?

Linux readlink und realpath Command Tutorial für Anfänger (mit Beispielen)

Bash-Scripting-Tutorial für Anfänger

Bash Heredoc-Tutorial für Anfänger

Shell-Scripting für Anfänger – So schreiben Sie Bash-Scripts unter Linux

Bash-Scripting Teil 2 – For- und While-Schleifen mit Beispielen

Bash Scripting Einführungstutorial mit 5 praktischen Beispielen