Μετακίνηση σε Shell-Scripts: Το Sh.py είναι εδώ και είναι απίστευτο.

Σίγουρα δεν γνωρίζατε ότι θα μπορούσατε να γράψετε σενάρια κελυφών σε Python: το sh.py σας επιτρέπει να καλείτε προγράμματα, να περάσετε παραμέτρους και να χειρίζεστε εξόδους.

Σίγουρα δεν γνωρίζατε ότι θα μπορούσατε να γράψετε σενάρια κελυφών σε Python: το sh.py σας επιτρέπει να καλείτε προγράμματα, να περάσετε παραμέτρους και να χειρίζεστε εξόδους.
Διαφήμιση

Σίγουρα δεν ξέρατε ότι θα μπορούσατε να γράψετε σενάρια κελύφους σε Python.

Για οποιονδήποτε προγραμματιστή ή διαχειριστή συστημάτων, το scripting κελύφους είναι μια ζωτική ικανότητα για να κυριαρχήσει. Σας επιτρέπει να αυτοματοποιήσετε κουραστικά καθήκοντα, μετατρέποντάς τα σε συνεπείς, επαναλαμβανόμενες ενέργειες. Το πρόβλημα είναι ότι μπορεί να είναι λίγο αποθαρρυντικό, ειδικά όταν θεωρείτε ότι οι περισσότερες διαλέκτους κελύφους-scripting έχουν έλλειψη της συντακτικής φινέτσας που βρίσκεται σε όμοιες με τις Python και Ruby.

Θα ήμουν ακόμη πιο αμβλύ. Τα περισσότερα σενάρια κελύφους είναι πιο άσχημα από τον μέσο όρο.

shpy-pug

Επιπλέον, υπάρχει μια ποικιλία κελυφών διαθέσιμων για πλατφόρμες τύπου UNIX, συμπεριλαμβανομένων των Bash, CSH, KSH και (αγαπημένου μου) FISH. Ως αποτέλεσμα, η συγγραφή συνεπών σεναρίων κελύφους που λειτουργούν σε κάθε πλατφόρμα μπορεί να είναι προκλητική.

Πρέπει να υπάρχει καλύτερος τρόπος, σωστά;

Παρουσιάζοντας το sh.py

Υπάρχει. Όταν δεν γράφω για το MakeUseOf, γράφω κώδικα στην Python για διασκέδαση και κέρδος. Μου αρέσει πραγματικά η Python λόγω της ευελιξίας της, της εγγενούς της ομορφιάς και του τρόπου με τον οποίο δίνει εντολή για τη σύνταξη καλών κώδικα από το σχεδιασμό. Εάν αυτό ακούγεται καλό για σας, αλλά δεν γνωρίζετε ήδη αυτή τη φοβερή γλώσσα, γιατί δεν ελέγχετε αυτές τις πέντε μεγάλες ιστοσελίδες για να μάθετε τον προγραμματισμό της Python Οι 5 καλύτερες ιστοσελίδες για να μάθετε Python Programming Οι 5 καλύτερες ιστοσελίδες για να μάθετε Python Programming την προηγούμενη δεκαετία, η γλώσσα προγραμματισμού της Python έχει εξελιχθεί σε δημοτικότητα μεταξύ των προγραμματιστών σε όλους τους τομείς της κωδικοποίησης. Από τους προγραμματιστές ιστοσελίδων έως τους σχεδιαστές παιχνιδιών βίντεο με τους δημιουργούς εργαλείων στο σπίτι, πολλοί άνθρωποι έχουν πέσει ... Διαβάστε περισσότερα;

Βρήκα μια εξαιρετικά φοβερή βιβλιοθήκη που κάλεσε μερικούς μήνες πίσω το sh.py, το οποίο σας επιτρέπει να καλείτε προγράμματα, να περάσετε παραμέτρους και να χειρίζεστε εξόδους, όλα μέσα στα όρια ενός προγράμματος της Python.

Λοιπόν, τι σημαίνει αυτό? Με απλά λόγια, αυτό σημαίνει ότι έχετε την πλήρη λειτουργικότητα των σεναρίων κελύφους, αλλά μέσα από μια γλώσσα που είναι εύκολη στην ανάγνωση, είναι αρθρωτή στη φύση και υποστηρίζει αντικειμενοστραφή προγραμματισμό. Καλά, σωστά;

Λοιπόν, πώς το χρησιμοποιούμε;

Κάνω μερικές παραδοχές για σένα. Το πρώτο είναι ότι εκτελείτε Linux, OS X ή FreeBSD. Όπως συμβαίνει τώρα, το sh.py δεν λειτουργεί στα Windows. Ωστόσο, αν χρειαστεί, μπορείτε πάντα να εγκαταστήσετε μια εικονική μηχανή Linux. Ο συνάδελφός μου Justin Pot έχει γράψει ένα αρκετά χρήσιμο άρθρο σχετικά με αυτό, το οποίο μπορείτε να δείτε εδώ Πώς να χρησιμοποιήσετε τα εικονικά κουτιά Δωρεάν εικόνες για να δοκιμάσετε και να εκτελέσετε τα λειτουργικά συστήματα ανοιχτού κώδικα [Linux] Πώς να χρησιμοποιήσετε τις εικονικές εικόνες Free Images για να δοκιμάσετε και να εκτελέσετε λειτουργικά συστήματα ανοιχτού κώδικα [Linux] Δοκιμάστε γρήγορα μια μεγάλη ποικιλία λειτουργικών συστημάτων ανοιχτού κώδικα, μερικά που είστε εξοικειωμένοι και μερικά δεν είστε. Μπορείτε να ξεκινήσετε την περιήγηση τώρα στο Virtualboxes, μια ιστοσελίδα που παίρνει σχεδόν όλη την εργασία έξω ... Διαβάστε περισσότερα.

Η δεύτερη υπόθεση που λαμβάνω είναι ότι τρέχετε μια πρόσφατη έκδοση του Python (είτε 2.7 ή 3.2) και έχετε εγκαταστήσει τον διαχειριστή πακέτων PIP. Εάν δεν συμβαίνει αυτό, ρίξτε μια ματιά στην επίσημη τεκμηρίωση της Python.

Ολα καλά? Τότε θα συνεχίσουμε.

Ας αρχίσουμε την κωδικοποίηση

Σε ένα τερματικό, εγκαταστήστε το sh.py με την ακόλουθη εντολή.

 sudo pip install sh 

Ο λόγος για τον οποίο χρησιμοποιούμε το «sudo» εδώ είναι επειδή πρέπει να αυξήσουμε τα δικαιώματά μας για να προσθέσουμε νέα πακέτα Python. Αν το sh.py εγκατασταθεί σωστά, θα δείτε τις παρακάτω γραμμές που υπάρχουν στο τερματικό σας.

 Λήψη / αποσυμπίεση sh Λήψη sh-1.09.tar.gz Εκτέλεση setup.py egg_info για πακέτο sh Εγκατάσταση συλλεχθέντων πακέτων: sh Εκτέλεση setup.py install για sh Επιτυχής εγκατάσταση sh Καθαρισμός ... 

Εάν δεν το λέει αυτό, οι πιθανότητες είναι καλές που η εγκατάσταση σας απέτυχε. Λυπημένος. Εάν συμβαίνει αυτό, δοκιμάστε να ελέγξετε τα δικαιώματά σας και να εγκαταστήσετε το PIP. Αν δεν είναι ακόμα εκεί, προσπαθήστε να ρωτήσετε για την υπερχείλιση στοίβας (που συζητήθηκε προηγουμένως) 10 ιστότοποι που μπορούν να βοηθήσουν τον αρχάριο προγραμματιστή με δείγματα κώδικα δείγματος 10 ιστότοποι που μπορούν να βοηθήσουν τον αρχάριο προγραμματιστή με δείγματα αποσπασμάτων κώδικα Διαβάστε περισσότερα από τον συντάκτη μας στο διαδίκτυο, Saikat Basu ) ή Απαντήσεις MakeUseOf.

Τώρα που έχει ταξινομηθεί, δημιουργήστε έναν νέο κατάλογο. Είναι εδώ όπου πρόκειται να τοποθετήσουμε όλο τον κώδικα μας. Ανοίξτε ένα πρόγραμμα επεξεργασίας κειμένου και δημιουργήστε ένα αρχείο που ονομάζεται 'shtest.py'. Εδώ πρόκειται απλώς να δημιουργήσουμε ένα νέο αρχείο και στη συνέχεια να απαριθμήσουμε τα περιεχόμενα του καταλόγου που είμαστε. Ακούγεται καλό;

Στο shtest.py, προσθέστε τις ακόλουθες γραμμές.

shpy-shtest

 #! / usr / bin / env Εισαγωγή python sh 
 sh.touch ('hello') εκτύπωση (sh.ls ('- l')) 

Απλά πράγματα εδώ. Ας σπάσουμε αυτό.

 #! / usr / bin / env python 

Αυτή η γραμμή ονομάζεται hash-bang και καθοδηγεί το κέλυφος σας να ανοίξει αυτό το αρχείο ως πρόγραμμα Python. Αυτό σας επιτρέπει να το ανοίξετε όπως θα κάνατε ένα script shell (./shtest.py), αντί να το ανοίξετε απευθείας με Python (python shtest.py). Καλά, σωστά;

 εισαγωγή sh 

Αυτή η γραμμή εισάγει τη βιβλιοθήκη sh που εγκαταστήσαμε πριν από λίγα λεπτά. Δεν μπορούμε να συνεχίσουμε χωρίς αυτό, οπότε βεβαιωθείτε ότι είναι στον κωδικό σας!

 sh.touch ('γεια') 

Ίσως να είστε εξοικειωμένοι με την εντολή Linux, 'touch'. Αυτό δημιουργεί ένα κενό αρχείο με όνομα αρχείου που καθορίζετε. Εδώ, καλούμε άμεσα «επαφή» μέσα από την Python. Όπως βλέπετε, έχουμε προηγηθεί αυτό με το 'sh.' Και το μεταφέρουμε με μια παράμετρο 'hello'.

 εκτύπωση (sh.ls ('- l')) 

Ίσως να είστε εξοικειωμένοι με την εντολή 'print', η οποία εξάγει κείμενο στην κονσόλα. Εδώ, περνάμε το 'sh.ls' ως παράμετρο. Αυτό καλεί το πρόγραμμα Linux ls, το οποίο απαριθμεί το περιεχόμενο ενός καταλόγου. Περνάμε επίσης ότι μια παράμετρος '-l', η οποία εκτυπώνει λεπτομερέστερες πληροφορίες σχετικά με τα περιεχόμενα του καταλόγου που εκτελούμε.

Λειτουργεί? Δες το και μονος σου.

shpy-shtest-έργα

Όσοι από εσάς με τα μάτια γεράκια θα παρατηρήσετε ότι υπάρχει ένα άλλο αρχείο που επιπλέει σε αυτόν τον κατάλογο με το όνομα 'gitsh.py'. Τι θα μπορούσε να υπάρχει εκεί;

Υπο-εντολές

Το sh.py έχει κάποια άγκιστρα για δημοφιλή προγράμματα που έχουν ήδη ψηθεί. Αυτά περιλαμβάνουν το git, το sudo και ένα σημαντικό αριθμό υπηρεσιών κοινής ωφέλειας του Linux. Αυτά κάνουν ακόμα πιο εύκολη την αλληλεπίδραση με αυτές τις υπηρεσίες από την Python.

Πόσο εύκολο; Λοιπόν, θα σας δείξω πώς να αρχικοποιήσετε ένα κενό αποθετήριο Git σε τρεις γραμμές κώδικα. Αρχικά, δημιουργήστε ένα αρχείο που ονομάζεται 'gitsh.py' και ανοίξτε το στον αγαπημένο σας επεξεργαστή κειμένου.

Στο εσωτερικό, γράψτε τις ακόλουθες τρεις γραμμές.

shpy-gitsh #! / usr / bin / env python από το sh import git print (git.init ()) 

Τα περισσότερα από αυτά πρέπει να είναι αρκετά γνωστά σε σας. Θα παρατηρήσετε ότι εισήγαμε το "git" από το "sh". Αυτό σημαίνει απλώς ότι έχουμε εισαγάγει ένα συγκεκριμένο κομμάτι λειτουργικότητας από μια ενότητα, αγνοώντας οτιδήποτε άλλο.

Μετά από αυτό, αρχικοποιούμε την αποθήκη μας.

 εκτύπωση (git.init ()) 

Μιλήσαμε για εκτύπωση. Θα πρέπει να παρατηρήσετε ότι καλούμε "git" χωρίς ".sh" να το προχωρήσουμε. Αυτό οφείλεται στο γεγονός ότι εισαγάγαμε συγκεκριμένα τη λειτουργικότητα git από τη βιβλιοθήκη sh.

shpy-gitsh έργα

Και αυτό είναι. Όταν εκτελούμε το gitsh.py, θα πρέπει να δείτε τις παρακάτω γραμμές στο τερματικό σας.

συμπέρασμα

Αυτή ήταν μια εύλογα εύκολη εισαγωγή στο sh.py. Αν είστε πρόθυμοι να μάθετε περισσότερα σχετικά με αυτό, ανατρέξτε στην επίσημη τεκμηρίωση εδώ. Ωστόσο, εάν κολλήσετε, μη διστάσετε να μου αποστείλετε ένα σχόλιο παρακάτω και θα προσπαθήσω να σας βοηθήσω.

In this article