Flyt over Shell-Scripts: Sh.py er her, og det er fantastisk.

Jeg vedder på, at du ikke vidste, at du kunne skrive shell scripts i Python: sh.py tillader dig at ringe til programmer, passere parametre og håndtere output.

Jeg vedder på, at du ikke vidste, at du kunne skrive shell scripts i Python: sh.py tillader dig at ringe til programmer, passere parametre og håndtere output.
Reklame

Jeg vedder på, at du ikke vidste, at du kunne skrive shell scripts i Python.

For enhver programmør eller systemadministrator er shell scripting en afgørende færdighed til at mestre. Det giver dig mulighed for at automatisere kedelige opgaver og gøre dem til konsekvente, gentagelige handlinger. Problemet er, at det kan være lidt skræmmende, især når man overvejer at de fleste shell-scripting dialekter mangler den syntaktiske finesse, der findes i Python og Ruby.

Jeg bliver endda blunter. De fleste shell scripts er grimler end den gennemsnitlige pug.

shpy-Mops

Derudover er der en række skaller til rådighed for UNIX-lignende platforme, herunder Bash, CSH, KSH og (min favorit) FISH. Som følge heraf kan det være udfordrende at skrive konsekvent, shell-scripts, der arbejder på tværs af hver platform.

Der skal være en bedre måde, ikke?

Introduktion af sh.py

Der er. Når jeg ikke skriver til MakeUseOf, skriver jeg kode i Python for sjov og fortjeneste. Jeg kan virkelig godt lide Python på grund af sin fleksibilitet, dens iboende skønhed og hvordan den mandater skriver god kode ved design. Hvis det lyder godt for dig, men du ikke allerede kender dette fantastiske sprog, hvorfor skal du ikke tjekke disse fem gode hjemmesider for at lære Python programmering De 5 bedste websites at lære python programmering De 5 bedste websites at lære python programmering over Det sidste årti har Python programmeringssproget eksploderet i popularitet blandt programmører på alle områder af kodning. Fra webudviklere til videospildesignere til in-house værktøjer skabere, mange mennesker er faldet i ... Læs mere?

Jeg kom på tværs af dette virkelig fantastiske bibliotek et par måneder tilbage kaldet sh.py, som giver dig mulighed for at ringe til programmer, sende parametre og håndtere output, alt inden for rammerne af et Python-program.

Så hvad betyder dette? Enkelt sagt betyder det, at du har den fulde funktionalitet af shell scripts, men fra et sprog, der er let at læse, er modulært i naturen og understøtter objektorienteret programmering. Cool, ikke?

Så hvordan bruger vi det?

Jeg laver nogle antagelser om dig. Den første er, at du kører Linux, OS X eller FreeBSD. Som det er lige nu fungerer sh.py ikke på Windows. Men hvis det er nødvendigt, kan du altid installere en Linux virtuel maskine. Min kollega Justin Pot har skrevet en ganske nyttig artikel om dette, som du kan tjekke her. Sådan bruges VirtualBoxes Gratis billeder til test og kør open source-operativsystemer [Linux] Sådan bruger du VirtualBoxes Gratis billeder til test og kør open source-operativsystemer [Linux] Prøv hurtigt et bredt udvalg af open source-operativsystemer, nogle du kender til og nogle du ikke er. Du kan begynde at surfe nu på Virtualboxes, en hjemmeside der tager næsten alt arbejde ud ... Læs mere.

Den anden antagelse jeg laver er, at du kører en ny version af Python (enten 2.7 eller 3.2), og du har installeret PIP-pakkehåndteringen. Hvis dette ikke er tilfældet, skal du kigge på den officielle Python-dokumentation.

Alt godt? Så fortsætter vi.

Lad os starte kodning

I en terminal skal du installere sh.py med følgende kommando.

 sudo pip install sh 

Grunden til, at vi bruger 'sudo' her, er, fordi vi skal hæve vores tilladelser for at tilføje nye Python-pakker. Hvis sh.py installeres korrekt, vil du se følgende linjer til stede i din terminal.

 Downloading / udpakning sh Downloading sh-1.09.tar.gz Løbende setup.py egg_info for pakke sh Installation af indsamlede pakker: sh Løbende setup.py installer til sh Successfully installeret sh Oprydning ... 

Hvis det ikke siger dette, er odds godt, at din installation mislykkedes. Trist. Hvis det er tilfældet, prøv at kontrollere dine tilladelser, og at du faktisk har installeret PIP. Hvis det stadig ikke er der, så prøv at spørge om Stack Overflow (som tidligere er blevet diskuteret 10 websteder, der kan hjælpe begynderprogrammeren med prøvekodeuddrag 10 websteder, der kan hjælpe begynderprogrammeren med prøvekodeuddrag Læs mere af vores internetredaktør, Saikat Basu ) eller MakeUseOf svar.

Nu er det sorteret, lav en ny mappe. Det er her, hvor vi skal placere hele vores kode. Åbn en teksteditor og opret en fil kaldet 'shtest.py'. Her skal vi blot oprette en ny fil, og derefter liste indholdet af den mappe, vi er i. Lyder godt?

I shtest.py skal du tilføje følgende linjer.

shpy-shtest

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

Enkle ting her. Lad os bryde det ned.

 #! / usr / bin / env python 

Denne linje kaldes hash-bang, og instruerer din shell til at åbne denne fil som et Python-program. Dette giver dig mulighed for at åbne den som du ville have et skal script (./shtest.py), i stedet for at åbne det direkte med Python (python shtest.py). Cool, ikke?

 import sh 

Denne linje importerer sh-biblioteket, som vi installerede for få øjeblikke siden. Vi kan ikke fortsætte uden dette, så sørg for at det er i din kode!

 sh.touch ( 'hallo') 

Du er måske bekendt med Linux-kommandoen, 'touch'. Dette skaber en tom fil med filnavn, som du angiver. Her kalder vi direkte 'touch' fra Python. Som du kan se, har vi prefaced dette med 'sh.', Og vi overfører det til en parameter af 'hej'.

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

Du er måske bekendt med kommandoen 'print', som udsender tekst til konsollen. Her overfører vi det 'sh.ls' som en parameter. Dette kalder Linux ls-programmet, som angiver indholdet af en mappe. Vi overfører også en parameter af '-l', som udskriver mere detaljerede oplysninger om indholdet i den mappe, vi udfører dette i.

Virker det? Se selv.

shpy-shtest-værker

De af jer med hawk-øjne vil bemærke, at der er en anden fil, der flyder om i den mappe, der hedder 'gitsh.py'. Hvad kunne der muligvis være derinde?

Underkommandoer

sh.py har nogle kroge til populære programmer allerede bagt i. Disse omfatter git, sudo og et betydeligt antal Linux-værktøjer. Disse gør det lettere at interagere med disse tjenester fra Python.

Hvor let? Nå skal jeg vise dig, hvordan du kan initialisere et tomt Git-lager i kun tre linjer kode. Opret først en fil kaldet 'gitsh.py' og åbn den i din yndlings tekstredigeringsprogram.

Indvendigt, skriv følgende tre linjer.

shpy-gitsh #! / usr / bin / env python fra sh import git print (git.init ()) 

Det meste af dette skal være temmelig kendt for dig. Du vil bemærke, at vi importerede 'git' fra 'sh'. Det betyder bare, at vi har importeret et bestemt funktionalitet fra et modul, mens vi ignorerer alt andet.

Derefter initialiserer vi vores lager.

 print (git.init ()) 

Vi har talt om print. Du skal bemærke, at vi kalder 'git' uden '.sh' fortsætter det. Dette skyldes, at vi specifikt importerede git-funktionaliteten fra 'sh'-biblioteket.

shpy-gitsh-værker

Og det handler om det. Når vi kører gitsh.py, skal vi se, at følgende linjer vises i din terminal.

Konklusion

Det var en rimelig let introduktion til sh.py. Hvis du er ivrig efter at lære mere om det, så tjek den officielle dokumentation her. Men hvis du sidder fast, er du velkommen til at give mig en kommentar nedenfor, og jeg vil forsøge at hjælpe dig.

In this article