Erstellen einer Shell-Skriptversion von Terminalbefehlen
Ich fange gerade erst an, die Grundlagen des Linux-Terminals zu lernen, und bin etwas verwirrt darüber, Terminalbefehle in Shell-Skripte zu konvertieren. Wie würde ich vorgehen, um eine Skriptdatei im Linux-Terminal zu erstellen und eine Shell-Skriptversion meines Codes unten zu erstellen:
curl -O https://people.sc.fsu.edu/~jburkardt/data/csv/cities.csv
head -n 12 cities.csv
Antworten
Verwenden eines Texteditors zum Erstellen Ihres Skripts
Skripte werden in Textdateien gespeichert. Sie können eine in einem Texteditor erstellen, wie geditoder nano:
$ nano yourscript.sh
Der Dateiname im Allgemeinen und die Dateinamenerweiterung im Besonderen spielen keine Rolle . In Ihrer Skriptdatei müssen Sie die ausführbare Datei des Interpreters deklarieren, um sie auszuführen (ein Shebang) . Fügen Sie dann Ihren Code hinzu. Um Ihr Skript zu speichern nano, drücken Sie Ctrl+ X, geben Sie ein yund drücken Sie Enter.
Verfassen Sie Ihr Skript
Wenn Sie Argumente an das Skript übergeben, können Sie sie in Ihrem Code anhand der Nummer referenzieren (das erste übergebene Argument ist $1, das zweite ist $2usw.). $0ist der Name des Skripts.
Verwenden Sie in der Regel immer doppelte Anführungszeichen um Variablen .
Wenn Sie beispielsweise Ihren Code verwenden, könnte das Skript wie folgt lauten:
#! /bin/bash
curl -O "$1"
head -n 12 cities.csv
Es kann ein Leerzeichen danach sein#! , aber es ist nicht notwendig. In den meisten Fällen können Sie die $0Variable im Terminal auf die ausführbare Shell-Datei überprüfen , die Ihre Befehle im Terminal interpretiert :
$ echo $0
/bin/bash
Verbessern Sie Ihren Code
Angenommen, Sie möchten nur die ersten 12 Zeilen der heruntergeladenen Datei, können Sie das Speichern der heruntergeladenen Datei auf der Festplatte überspringen und zum nächsten Befehl weiterleiten :
#! /bin/bash
curl -s "$1" | head -n 12
Als Bonus können Sie den Dateinamen in Ihrem Skript weglassen.
Ausführen des Skripts
Angenommen, Sie speichern Ihr Skript unter yourscript.sh, fügen Sie die Berechtigung hinzu, es zuerst auszuführen:
$ chmod +x yourscript.sh
Um es auszuführen, müssen Sie den Pfad dazu angeben und die Argumente angeben. Wenn es sich im aktuellen Verzeichnis befindet, können Sie den Pfad dazu angeben, indem Sie Folgendes voranstellen ./:
$ ./yourscript.sh 'https://people.sc.fsu.edu/~jburkardt/data/csv/cities.csv'
Alle Befehle, die Sie einzeln an der Eingabeaufforderung eingeben, können einfach in eine Skriptdatei eingefügt und einmal ausgeführt werden.
Die einzige Voraussetzung ist die Interpreterzeile, die sich am Anfang der Datei befinden sollte
#!/bin/shSie können ein Skript für andere wie bash (
#!/bin/bash) oder zsh (#!/bin/zsh) schreiben.Machen Sie Ihr Skript durch Ausführen ausführbar
chmod +x scriptFile.sh(sh-Erweiterung ist gut zu haben, da es anzeigt, dass es sich um eine Skriptdatei handelt)Führen Sie das Skript durch
./scriptFile.sh
Optional: Sie können den Verzeichnispfad zur PATH-Variablen hinzufügen, um das Skript aus einem beliebigen Verzeichnis ausführen zu können, indem Sie einfach aufrufen, scriptFile.shwie Sie einen anderen Shell-Befehl aufrufen ls, odercat