Bewegen Sie sich über Shell-Skripte Sh.py ist hier und es ist fantastisch.

Bewegen Sie sich über Shell-Skripte Sh.py ist hier und es ist fantastisch. / Linux

Ich wette, Sie wussten nicht, dass Sie in Python Shell-Skripte schreiben könnten.

Für jeden Programmierer oder Systemadministrator ist Shell Scripting eine wichtige Fähigkeit, die es zu meistern gilt. Sie können mühsame Aufgaben automatisieren und diese in konsistente, wiederholbare Aktionen umwandeln. Das Problem ist, dass es ein bisschen entmutigend sein kann, vor allem wenn man bedenkt, dass den meisten Shell-Scripting-Dialekten die syntaktische Finesse von Python und Ruby fehlt.

Ich werde sogar stumpfer sein. Die meisten Shell-Skripte sind hässlicher als der durchschnittliche Pug.

Darüber hinaus gibt es eine Vielzahl von Shells für UNIX-ähnliche Plattformen, darunter Bash, CSH, KSH und (mein Favorit) FISH. Daher kann es schwierig sein, konsistente Shell-Skripts zu schreiben, die auf jeder Plattform funktionieren.

Es muss einen besseren Weg geben, richtig?

Sh.py wird vorgestellt

Es gibt. Wenn ich nicht für MakeUseOf schreibe, schreibe ich Code in Python, um Spaß und Gewinn zu erzielen. Ich mag Python sehr, wegen seiner Flexibilität, seiner inhärenten Schönheit und der Tatsache, dass guter Code durch Design geschrieben werden muss. Wenn sich das für Sie gut anhört, Sie aber diese awesome Sprache noch nicht kennen, dann besuchen Sie doch diese fünf großartigen Websites, um die Python-Programmierung zu lernen Python-Programmierung lernen? Hier sind die besten Möglichkeiten, Python online zu lernen, von denen viele völlig kostenlos sind. Weiterlesen ?

Ich bin vor ein paar Monaten auf diese wirklich beeindruckende Bibliothek namens sh.py gestoßen, mit der Sie Programme aufrufen, Parameter übergeben und Ausgaben handhaben können, alles innerhalb der Grenzen eines Python-Programms.

Was bedeutet das? Einfach ausgedrückt bedeutet dies, dass Sie über die volle Funktionalität von Shell-Skripten verfügen, aber innerhalb einer Sprache, die leicht zu lesen ist, modular aufgebaut ist und objektorientierte Programmierung unterstützt. Cool, richtig?

Wie verwenden wir es also??

Ich mache ein paar Annahmen über dich. Die erste ist, dass Sie Linux, OS X oder FreeBSD verwenden. Wie es jetzt ist, funktioniert sh.py nicht unter Windows. Bei Bedarf können Sie jedoch immer eine virtuelle Linux-Maschine installieren. Mein Kollege Justin Pot hat dazu einen ziemlich nützlichen Artikel geschrieben, den Sie hier lesen können. Verwendung von VirtualBoxes Free Images zum Testen und Ausführen von Open Source-Betriebssystemen [Linux] Verwendung von VirtualBoxes Free Images zum Testen und Ausführen von Open Source-Betriebssystemen [Linux] Probieren Sie schnell eine Vielzahl von Open-Source-Betriebssystemen aus, von denen Sie einige kennen und andere nicht. Sie können jetzt mit Virtualboxes surfen, einer Website, die fast alle Aufgaben erledigt. Lesen Sie mehr .

Die zweite Annahme, die ich ansetze, ist, dass Sie eine aktuelle Version von Python (entweder 2.7 oder 3.2) ausführen und den PIP-Paketmanager installiert haben. Ist dies nicht der Fall, schauen Sie sich die offizielle Python-Dokumentation an.

Alles gut? Dann machen wir weiter.

Beginnen wir mit der Codierung

Installieren Sie sh.py in einem Terminal mit dem folgenden Befehl.

sudo pip install sh

Der Grund, warum wir 'sudo' hier verwenden, ist, weil wir unsere Berechtigungen zum Hinzufügen neuer Python-Pakete erhöhen müssen. Wenn sh.py korrekt installiert wird, werden die folgenden Zeilen in Ihrem Terminal angezeigt.

Herunterladen / Entpacken von sh Herunterladen von sh-1.09.tar.gz Ausführen von setup.py egg_info für Paket sh Installieren gesammelter Pakete: sh Ausführen von setup.py install für sh Erfolgreich installiert sh Bereinigen… 

Wenn dies nicht gesagt wird, sind die Chancen gut, dass Ihre Installation fehlgeschlagen ist. Traurig. Wenn dies der Fall ist, überprüfen Sie Ihre Berechtigungen und überprüfen Sie, ob Sie tatsächlich PIP installiert haben. Wenn es immer noch nicht vorhanden ist, fragen Sie nach Stack Overflow (zuvor besprochen). 10 Websites, die dem Anfänger-Programmierer mit Beispielcode-Snippets helfen können. 10 Websites, die dem Anfänger-Programmierer mit Beispielcode-Snippets helfen können ) oder Antworten auf MakeUseOf.

Nun ist das sortiert, erstellen Sie ein neues Verzeichnis. Hier werden wir unseren gesamten Code platzieren. Öffnen Sie einen Texteditor und erstellen Sie eine Datei mit dem Namen 'shtest.py'. Hier erstellen wir einfach eine neue Datei und listen dann den Inhalt des Verzeichnisses auf, in dem wir uns befinden. Klingt gut?

Fügen Sie in shtest.py die folgenden Zeilen hinzu.

#! / usr / bin / env python import sh
sh.touch ('Hallo') Druck (sh.ls ('- l'))

Einfaches Zeug hier. Lass uns das aufteilen.

#! / usr / bin / env python

Diese Zeile wird Hash-Bang genannt und weist Ihre Shell an, diese Datei als Python-Programm zu öffnen. Dadurch können Sie es wie ein Shell-Skript (./shtest.py) öffnen, anstatt es direkt mit Python (python shtest.py) zu öffnen. Cool, richtig?

import sh

Diese Zeile importiert die SH-Bibliothek, die wir vor ein paar Sekunden installiert haben. Wir können nicht ohne das weitermachen, also stellen Sie sicher, dass es in Ihrem Code ist!

sh.touch ("Hallo")

Sie sind möglicherweise mit dem Linux-Befehl "touch" vertraut. Dadurch wird eine leere Datei mit dem von Ihnen angegebenen Dateinamen erstellt. Hier rufen wir direkt in Python "Berührung" an. Wie Sie sehen, haben wir dies mit 'sh' eingeleitet, und wir übergeben einen Parameter von 'hallo'..

print (sh.ls ('- l'))

Sie sind möglicherweise mit dem Befehl 'print' vertraut, der Text an die Konsole ausgibt. Hier übergeben wir 'sh.ls' als Parameter. Dies ruft das Linux-Programm ls auf, das den Inhalt eines Verzeichnisses auflistet. Wir übergeben auch einen Parameter von '-l', der detailliertere Informationen über den Inhalt des Verzeichnisses ausgibt, in dem wir das ausführen.

Funktioniert es? Überzeugen Sie sich selbst.

Diejenigen von Ihnen mit Falkenaugen werden feststellen, dass sich in diesem Verzeichnis eine weitere Datei mit dem Namen 'gitsh.py' befindet. Was könnte da drin sein??

Unterbefehle

sh.py hat einige Hooks für beliebte Programme, die bereits gebacken sind. Dazu gehören git, sudo und eine beträchtliche Anzahl von Linux-Dienstprogrammen. Dadurch wird die Interaktion mit diesen Diensten in Python noch einfacher.

Wie einfach? Nun, ich werde Ihnen zeigen, wie Sie ein leeres Git-Repository in nur drei Codezeilen initialisieren. Erstellen Sie zuerst eine Datei mit dem Namen "gitsh.py" und öffnen Sie sie in Ihrem bevorzugten Texteditor.

Schreiben Sie innen die folgenden drei Zeilen.

 #! / usr / bin / env python von sh import git print (git.init ())

Das meiste davon sollte Ihnen ziemlich bekannt sein. Sie werden feststellen, dass wir "git" von "sh" importiert haben. Dies bedeutet lediglich, dass wir eine bestimmte Funktionalität aus einem Modul importiert haben und alles andere ignorieren.

Danach initialisieren wir unser Repository.

print (git.init ())

Wir haben über Print gesprochen. Sie sollten feststellen, dass wir 'git' nennen, ohne dass '.sh' weitergeht. Dies liegt daran, dass wir die Git-Funktionalität speziell aus der 'sh'-Bibliothek importiert haben.

Und das ist es auch schon. Wenn wir gitsh.py ausführen, sollten die folgenden Zeilen in Ihrem Terminal erscheinen.

Fazit

Das war eine relativ einfache Einführung in sh.py. Wenn Sie mehr darüber erfahren möchten, lesen Sie die offizielle Dokumentation hier. Wenn Sie jedoch nicht weiterkommen, können Sie mir gerne einen Kommentar hinterlassen. Ich werde versuchen, Ihnen zu helfen.

Erfahren Sie mehr über: Programmierung, Python, Terminal.