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

Wie führe ich einen Befehl in einem Shell-Skript aus?

Shell ist ein Befehlszeileninterpreter, der es dem Benutzer ermöglicht, mit dem System zu interagieren. Es ist dafür verantwortlich, Eingaben vom Benutzer entgegenzunehmen und die Ausgabe anzuzeigen.

Shell-Skripte sind eine Reihe von Befehlen, die in der Reihenfolge ihrer Ausführung geschrieben werden. Diese Skripte können Funktionen, Schleifen, Befehle, Variablen enthalten. Skripte machen es den Benutzern leicht, bestimmte Sequenzen von Codes zu speichern, die möglicherweise immer wieder verwendet werden. Shell-Skripte können auch Kommentare enthalten, um die Lesbarkeit zu verbessern.

Ein Shell-Skript muss mit der Erweiterung .sh gespeichert werden .

Damit das Linux-System weiß, dass es sich bei der Datei um ein Shell-Skript handelt, muss die Datei mit dem shebang beginnen konstruieren.

#!/bin/bash 
OR
#!/bin/sh

Danach kann das Skript Befehle, Funktionen, Schleifen, Bedingungsprüfungen usw. enthalten.

Ein gutes Skript enthält immer Kommentare, die es lesbar machen.

Erstellen und Ausführen eines einfachen Shell-Skripts

Ein Shell-Skript kann mit vi, dem cat-Befehl oder dem normalen Texteditor in der GUI erstellt werden.

Lassen Sie uns ein einfaches Shell-Skript mit vi

erstellen
$ vi basic_script.sh

Dadurch gelangen Sie zum vi-Editor. Fügen Sie die folgenden Zeilen hinzu:

#!/bin/bash
whoami
date

Dieses einfache Skript sollte den aktuellen Benutzer gefolgt vom Datum anzeigen.

So speichern und beenden Sie den vi-Editor:

  • Drücken Sie ESC
  • Geben Sie ein:
  • Geben Sie „wq“ ein
  • Drücken Sie die Eingabetaste

Standardmäßig erhält der Ersteller des Skripts keine Ausführungsberechtigung für die Datei.

Um das zu ändern:

$ chmod +x basic_script.sh

Dadurch erhalten Sie (aktueller Benutzer) die Berechtigung, die Datei auszuführen.

So führen Sie das Skript aus:

$ bash basic_script.sh

Die erste Ausgabezeile entspricht dem Befehl „whoami“ und die zweite Zeile dem Befehl „date“.

Eine andere Möglichkeit, das Skript auszuführen, ist:

$ ./basic_script.sh 

Wenn Sie die Datei auf diese Weise ausführen, muss der Benutzer möglicherweise zuerst die Erlaubnis erteilen. Das Ausführen mit „bash“ erfordert keine Genehmigung.

Dasselbe Skript wird mit ‘bash’ ausgeführt davor, aber mit Berechtigungsproblemen, wenn versucht wird, direkt auszuführen. Der Grund dafür ist, dass der Befehl bash [Dateiname] benötigt nur Leserechte von der Datei.

Während der Befehl ./[Dateiname] die Datei als ausführbare Datei ausführt und daher die Berechtigung zum Ausführen erfordert. Diese Frage wurde ausführlich auf StackExchange beantwortet.

Im Allgemeinen ist es besser, eine Ausführungsberechtigung zu erteilen.

Variablen in Shell-Skripten verwenden

Skripte können benutzerdefinierte Variablen enthalten, da Skripte in der Tat umfangreich werden, ist es wichtig, klar definierte Variablen zu haben. Variablen, die ihrer Natur nach selbstbeschreibend sind, sind eine weitere Qualität eines guten Skripts.

Fügen Sie dem Skript die folgenden Zeilen hinzu:

#!/bin/bash
#This is a comment

#defining a variable
GREETINGS="Hello! How are you"
echo $GREETINGS

GRÜSSE ist die definierte Variable, auf die später mit „$“ zugegriffen wird.

In der Zeile, in der Variablen ein Wert zugewiesen wird, darf kein Leerzeichen vorhanden sein.

Lassen Sie uns das Skript ausführen:

Eingabe von der Kommandozeile lesen

Shell-Skripte können interaktiv gemacht werden, indem Eingaben von der Befehlszeile akzeptiert werden. Der Lesebefehl kann verwendet werden, um die Befehlszeileneingabe in einer Variablen zu speichern.

#!/bin/bash
#This is a comment

#defining a variable
echo "What is your name?"
#reading input 
read NAME
#defining a variable
GREETINGS="Hello! How are you"
echo $NAME $GREETINGS
                 

Eine Variable NAME wurde verwendet, um Eingaben von der Befehlszeile zu akzeptieren.

Beim Ausführen des Skripts :

Funktionen definieren

Benutzer können ihre eigenen Funktionen in einem Skript definieren. Diese Funktionen können mehrere Argumente annehmen.

Fügen Sie im Skript Folgendes hinzu:

#!/bin/bash
#This is a comment

#defining a variable
echo "What is the name of the directory you want to create?"
#reading input 
read NAME
#defining a variable

echo "Creating $NAME ..."
mkcd ()
{
  mkdir "$NAME" 
  cd "$NAME"
}

mkcd
echo "You are now in $NAME"

Dieses Skript fragt den Benutzer nach einem Verzeichnisnamen. Es erstellt dann das Verzeichnis und cd hinein.

Schlussfolgerung

Wir haben gesehen, wie Skripte verwendet werden können, um Befehle in einer seriellen Reihenfolge auszuführen. Skripte helfen Benutzern, Redundanzen zu reduzieren und Zeit zu sparen. Skripte können auch von verschiedenen Benutzern geteilt werden.

Die Skripte, die wir in diesem Tutorial gesehen haben, waren recht einfach, Skripte können auch für die Ausführung komplexer Aufgaben entwickelt werden. Weitere Informationen zum Skripting finden Sie hier.


Linux
  1. Wie führe ich einen Befehl in der Shell aus, ohne ihn im Verlauf zu speichern? [Linux-Tipps]

  2. Wie führe ich ein Skript in der Shell aus, wenn eine Tastenkombination gedrückt wird?

  3. Wie kann man feststellen, ob die Ausgabe eines Befehls oder Shell-Skripts Stdout oder Stderr ist?

  4. Wie speichert man einen Befehl in einer Variablen in einem Shell-Skript?

  5. Wie führt man ein Bash-Skript aus?

So verwenden Sie Variablen in Shell-Skripten

So führen Sie einen Shell-Befehl mit Python aus

So erstellen Sie Shell-Skripte

So führen Sie Shell-Befehle über einen HTTP-Server aus

So schreiben Sie ein Shell-Skript in Ubuntu

So speichern Sie einen Linux-Befehl als Variable im Shell-Skript