Programmierskript mit Bash in Linux

terminal-if-then-else-bash-cycle.jpg

Obwohl wir es normalerweise für administrative oder Dateiverwaltungsvorgänge verwenden, erweitert die Linux-Konsole ihre Funktionalität weit über diesen Zweck hinaus und ermöglicht es uns, Skripte gemäß unseren Anforderungen zu programmieren.

Grundsätzlich sagen wir, dass es sich um eine Datei handelt, die Code enthält, der in einer bestimmten Programmiersprache geschrieben ist und den das System für eine bestimmte Aufgabe verwendet. Es ist keine externe Eingabe oder grafische Schnittstelle erforderlich, es ist jedoch eine Ausgabe der verarbeiteten Daten erforderlich.

Zu Beginn müssen wir einen Texteditor haben und programmieren wollen. Die Dateien, die wir mit der Erweiterung .sh speichern, können von der Konsole ausgeführt (oder interpretiert) werden, sofern die erste Zeile die folgende ist:

#! / bin / bash
Dies teilt dem System mit, dass Sie die Konsole verwenden müssen, um die Datei auszuführen. Darüber hinaus können Sie mit dem Zeichen # Kommentare schreiben.

Versuchen wir einige Beispiele
Wir erstellen eine Datei mit dem Namen downloads.sh

 #! / bin / bash #Wir erstellen einen Alias ​​namens Downloads mit der Verzeichnisadresse Downloads alias downloads = '/ home / user / Downloads' 

Speichern Sie es als downloads.sh
Um das Skript ‘Bash’ zu starten, erteilen Sie ihm Ausführungsberechtigungen. Geben Sie dazu das Befehlsterminal ein:

 chmod u + x downloads.sh 

Denken Sie daran, diesen Befehl für jedes Skript auszuführen, das Sie erstellen
Starten Sie das Skript, das im Terminal ausgeführt wird

 ./downloads.sh 

Wenn es funktioniert, sollten Sie im Downloads-Verzeichnis positioniert sein
Verwenden Sie Variablen und Parameter im Skript

 #! / bin / bash # Variablen verwenden # echo "Dein erstes Argument ist" $ 1 echo "Dein zweites Argument ist" $ 2 

Die Art, das Skript auszuführen, ist zum Beispiel

 ./myScript.sh Hallo 4 

Das Ergebnis sollte sein
Ihr erstes Argument ist hallo
Ihr zweites Argument ist 4

See also  Grundlegendes zur Datenbindung in Knockout.js

Wie Variablen und Parameter erstellt werden, kann während der Ausführung eingegeben werden

 #! / bin / bash echo "Geben Sie Ihren Namen ein und drücken Sie ENTER" #Lassen Sie die Namensvariable Name lesen echo "Dein Name ist $ name" 

Ein nützliches Beispiel für ein Skript, das uns Aufschluss darüber gibt, welche Prozesse ein bestimmter Benutzer eingibt

 #! / bin / bash RES = s #reagiert auf die Schleife, um fortzufahren, wenn während [$ RES = s] zu tun echo "Benutzername eingeben:" Lesen Sie USU #Benutzername ps aux | grep $ USU Echo "Möchten Sie fortfahren?" Lesen Sie RES fertig 

Wenn Sie verhindern möchten, dass ein Benutzer das Skript zu Beginn ausführt, können Sie den folgenden Code einfügen, damit er nur vom Root-Benutzer ausgeführt werden kann

 #! / bin / bash if [[$ EUID -ne 0]]; dann echo "Dieses Skript muss vom Root-Benutzer" 1> & 2 ausgeführt werden Ausfahrt 1 fi 

Wenn ein anderer Benutzer versucht, das Skript auszuführen, funktioniert es nicht und das Terminalfenster wird geschlossen.

Wir können auch einigen Benutzern erlauben, es für sie zu starten. Wir werden den folgenden Code einfügen

 #! / bin / bash AUTHORIZED_USER = "Benutzer erlaubt" if [$ USER! = $ AUTHORIZED_USER]; dann echo "Dieses Skript muss vom Benutzer $ AUTHORIZED_USER" 1> & 2 ausgeführt werden Ausfahrt 1 fi 

Wir werden ein Bash-Menü erstellen, um einem Benutzer verschiedene Optionen zu geben oder die Interaktion zu erleichtern

 #! / bin / bash klar während: zu tun echo "Wähle eine Option" Echo "1. Benutzer verbunden?" Echo "2. Ressourcenverbrauch" Echo "3. Dienste funktionieren?" Echo "4. Beenden" echo -n "Wähle eine Option [1 - 4]" Leseoption case $ option in 1) Echo "Sie sind verbunden:"; wer ;; 2) Echo "Executing htop"; htop ;; 3) Isof -n -i-P | grep '* ;; 4) Echo "Ende"; Ausfahrt 1 ;; *) echo "$ opc ist eine ungültige Option?"; echo "Drücken Sie eine Taste, um fortzufahren ..."; lese foo ;; fertig 

administrator

Leave a Reply

Your email address will not be published. Required fields are marked *