Erstellen Sie Ihre eigenen Skripte mit bash

Linux lernen

Unabhängig von der Linux-Distribution, die wir verwenden, besteht kein Zweifel daran, dass mein Favorit Ubuntu ist, sobald wir mit der Verwendung dieses Systems beginnen Automatisierungsbedarf. Das heißt: erstellen Sie unsere eigene Befehle die bestimmte Befehle auf personalisierte Weise ausführen. Dieser Bedarf kann auf bestimmte Ursachen zurückzuführen sein:

  • Vereinfachen Sie die Syntax der Befehle, die wir normalerweise ausführen.
  • Ergreifen Sie Maßnahmen, die alle abdecken Notwendigkeit, die im System nicht vorgesehen ist Betriebs.
  • Sequenzaufträge das wiederholen wir gewissenhaft.

Obwohl ein Bash-Skript in / aus jedem Verzeichnis ausgeführt werden kann, ist dies normalerweise der Fall Erstellen Sie ein Verzeichnis zum Hosten dieser Skripte. In meinem Fall:

$ mkdir /home/pedro/.bin

ich glaube das Verzeichnis (ausgeblendet, indem der Punkt vor dem Namen geführt wird) um alle Skripte zu halten, die ich dort benutze. Dass der Name des Verzeichnisses ausgeblendet ist, hat keine andere Bedeutung als - sofern nicht ausdrücklich anders angegeben - wird beim Anzeigen von / home / pedro im Datei-Viewer im grafischen Modus nicht angezeigt.

Jetzt musst du Informieren Sie Linux, dass es auch dort suchen sollte (/home/pedro/.bin) die Befehle, die vom Terminal ausgeführt werden.

$ PATH=$PATH;/home/pedro/.bin

Auf diese Weise sucht das System dort nach unseren Bestellungen bis wir die Sitzung schließen. Um diesen Verein dauerhaft zu machen:

$ sudo nano /etc/environment

und wir fügen hinzu

:/home/pedro/.bin

Am Ende der PATH-Zeile ist es sehr wichtig, den Doppelpunkt vor der Adresse des Verzeichnisses, das wir einschließen, nicht zu vergessen, da Dies ist der Additionsmechanismus.

Unser erstes Schritt-für-Schritt-Skript

Wir erstellen unsere Datei wie folgt in meinem Fall:

$ touch ~/.bin/donde

Und um es zu bearbeiten, können Sie Ihren bevorzugten Editor verwenden oder dieser Angabe folgen:

$ gedit ~/.bin/donde &

Und wir fügen folgenden Inhalt hinzu:

#!/usr/bin/env bash

if [ $# -lt 1 ];
then
    echo "Necesitas pasar un parámetro"
else
    whereis $1
fi

Skriptanalyse

Unsere erste Anrufleitung «Shebang»(#! / Usr / bin / env bash) Bitten Sie Linux, sich zu melden Wo befindet sich die Bash-Shell? und dass das Folgende gemäß den Anforderungen von bash ausgeführt wird. Diese Vorsichtsmaßnahme es ist bequem, dies sicherzustellen Unsere Skripte funktionieren bei jeder Installation. Ein anderer möglich Shebang er lachte:

#!/bin/bash

Der Unterschied zwischen ihnen kann sehr ausgeflippt sein, und ich werde es erklären. Im letzteren Ich gehe davon aus, dass in unserem System Die Bash-Shell befindet sich an der Adresse / bin / bash. Allerdings, wo ich im Skript vorschlage Ich glaube ich weiß nicht wo es ist der Bash-Dolmetscher. Ich bitte das System, diese Adresse anzugeben.

Dritte Zeile: Wie Sie sehen können, ist die zweite Zeile ein Wenn. Für die Charaktere schlagen «$#« enthalten die Anzahl der Parameter, die wir über die Befehlszeile übergeben. Daher »if [$ # -lt 1];» bedeutet wörtlich "wenn die Anzahl der Parameter kleiner als 1 ist".

Vierte Zeile: Dann (wörtlich übersetzt aus dem Englischen: dann), hier wird angezeigt, was als nächstes kommt wird bei der Zustandsbewertung ausgeführt if wahr sein: Mit anderen Worten, die Anzahl der Parameter ist kleiner als 1, dh Null.

Fünfte Zeile: Wenn wir unser Skript ohne Parameter ausführen, wird im Terminal «Sie müssen einen Parameter übergeben» angezeigt.

Sechste Zeile: Gibt an, dass das Folgende ausgeführt wird wenn die von uns deklarierte Bedingung nicht wahr ist.

Siebte Zeile: Se Führen Sie den Befehl aus «wo ist« begleitet von dem Inhalt, als den wir übergeben haben erster Parameter.

Achte Zeile: mit «fi»Zeigt an, dass der Block endet if.

Testen Sie unser Skript

Es ist wichtig, Schreibberechtigungen hinzufügen zum Skript:

$ chmod -x ~/.bin/donde

Ohne dies würde ein Fehler "Berechtigung verweigert" angezeigt.. Danach können wir unser Skript ausführen.

$ donde php

Es sollte uns den Speicherort der PHP-Binärdateien, ihre Quelldateien und Manpages anzeigen. So ähnlich:

php: /usr/bin/php7.0 /usr/bin/php /usr/lib/php /etc/php 
/usr/share/php7.0-readline /usr/share/php7.0-json /usr/share/php7.0-opcache 
/usr/share/php7.0-common /usr/share/php /usr/share/man/man1/php.1.gz

Recapping

  • Wir ermöglichen a Verzeichnis ".bin", um unsere Skripte unterzubringen.
  • Wir bieten an Informationen an Linux, um dieses Verzeichnis in die Befehlssuche aufzunehmen.
  • Wir erstellen unser Skript.
  • Unterschied zwischen Different Shebang.
  • Gebrauch von Anzahl der mit $ # übergebenen Parameter.
  • Gebrauch von erster Parameter mit $1.

Ich hoffe und wünsche, dass dieses Skript für Sie nützlich ist.


Hinterlasse einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert mit *

*

*

  1. Verantwortlich für die Daten: Miguel Ángel Gatón
  2. Zweck der Daten: Kontrolle von SPAM, Kommentarverwaltung.
  3. Legitimation: Ihre Zustimmung
  4. Übermittlung der Daten: Die Daten werden nur durch gesetzliche Verpflichtung an Dritte weitergegeben.
  5. Datenspeicherung: Von Occentus Networks (EU) gehostete Datenbank
  6. Rechte: Sie können Ihre Informationen jederzeit einschränken, wiederherstellen und löschen.

  1.   Miguel sagte

    Sehr gut und gut erklärt, aber worauf bezieht sich ein Parameter?

    1.    Pedro Ruiz Hidalgo Platzhalterbild sagte

      Danke Miguel!

      Ich verstehe unter Parameter alle ergänzenden Informationen, die einem Programm, einer Funktion oder einem System zugeführt werden. Da dies umständlich sein kann, möchte ich Ihnen einige Beispiele geben.

      Im Linux-Befehl zum Kopieren der Datei a.txt in die Datei b.txt würden wir Folgendes schreiben:

      $cp a.txt b.txt

      Das cp-Programm empfängt hier zwei Parameter, die die Namen von zwei Dateien sind, den ersten (muss vorhanden sein) a.txt und den zweiten b.txt.

      Ein weiteres Beispiel: Wenn Sie mit dem Befehl von der Konsole aus zum Drucken senden

      $ lp file.pdf

      In diesem Fall ist "file.pdf" ein Parameter für das lp-Programm.

      Ich hoffe, ich habe Ihre Zweifel befriedigt.

      Grüße

  2.   Miguel sagte

    Meine Kommentare kommen nicht heraus, es ist ein Mangel an Respekt, ich kehre nicht wieder in dieses Forum zurück.

    1.    Pedro Ruiz Hidalgo Platzhalterbild sagte

      Ich weiß nicht, was passiert ist, auf jeden Fall wurde dieser veröffentlicht.

      Grüße.