Deplasați peste Shell-Scripts Sh.py este aici și este minunat.

Deplasați peste Shell-Scripts Sh.py este aici și este minunat. / Linux

Pun pariu că nu știai că poți scrie scripturi de shell în Python.

Pentru orice programator sau administrator de sisteme, scripting shell este o abilitate vitală de a stăpâni. Vă permite să automatizați sarcini plictisitoare, transformându-le în acțiuni consecvente și repetabile. Problema este că poate fi un pic cam descurajător, mai ales atunci când considerați că majoritatea dialectelor de script-shell nu dispun de finețea sintactică găsită în Python și Ruby.

Voi fi chiar mai blond. Cele mai multe scripturi de shell sunt mai urâte decât pugul mediu.

În plus, există o varietate de cochilii disponibile pentru platformele de tip UNIX, inclusiv Bash, CSH, KSH și (preferatul meu) FISH. Ca rezultat, scrierea unor corespondente, scripturile shell care funcționează în fiecare platformă poate fi o provocare.

Trebuie să existe o cale mai bună, corect?

Introducerea sh.py

Există. Când nu scriu pentru MakeUseOf, scriu cod în Python pentru distracție și profit. Îmi place foarte mult Python datorită flexibilității sale, frumuseții sale inerente și a modului în care mandatează scrierea unui cod bun prin design. În cazul în care sună bine pentru tine, dar nu știți deja acest limbaj minunat, de ce nu verificați aceste cinci site-uri mari pentru a învăța programarea Python Cele mai bune 5 site-uri web pentru a învăța Python Programarea Cele mai bune 5 site-uri web pentru a afla Python Programming Want pentru a învăța programarea Python? Iată cele mai bune modalități de a învăța Python online, dintre care multe sunt gratuite. Citeste mai mult ?

Am dat peste această bibliotecă cu adevărat minunată, acum câteva luni, numită sh.py, care vă permite să programați programe, să parcurgeți parametrii și să gestionați ieșirile, toate în limitele unui program Python.

Deci, ce înseamnă asta? Pur și simplu, înseamnă că aveți funcționalitatea completă a script-urilor de shell, dar dintr-o limbă care este ușor de citit, este modulară în natură și susține programarea orientată pe obiecte. Răcoros, bine?

Deci, cum îl folosim?

Fac câteva presupuneri despre tine. Primul este că rulați Linux, OS X sau FreeBSD. Așa cum este acum, sh.py nu funcționează pe Windows. Cu toate acestea, dacă este necesar, puteți instala întotdeauna o mașină virtuală Linux. Colegul meu Justin Pot a scris un articol destul de util despre acest lucru, pe care îl puteți verifica aici Cum se utilizează VirtualBoxes Imagini gratuite pentru a testa și rula sisteme de operare Open Source [Linux] Cum se utilizează VirtualBoxes Imagini gratuite pentru a testa și a rula sisteme de operare open source [Linux] Încercați rapid o mare varietate de sisteme de operare open source, unele cu care vă cunoașteți și unele nu sunteți. Puteți începe să navigați acum la Virtualboxes, un site web care necesită aproape toată munca ... Citește mai mult .

A doua ipoteză pe care o fac este că rulați o versiune recentă de Python (fie 2.7 sau 3.2) și aveți instalat pachetul PIP. Dacă nu este cazul, aruncați o privire asupra documentației oficiale Python.

Toate bune? Atunci vom continua.

Să începem să codificăm

Într-un terminal, instalați sh.py cu următoarea comandă.

sudo pip install sh

Motivul pentru care folosim "sudo" aici este că trebuie să ne ridicăm permisiunile pentru a adăuga noi pachete Python. Dacă sh.py se instalează corect, veți vedea următoarele linii prezente în terminalul dvs..

Descărcarea / dezambalarea sh Descărcarea sh-1.09.tar.gz Executarea setup.py egg_info pentru pachetul sh Instalarea pachetelor colectate: sh Running setup.py install for sh Instalarea cu succes sh Curățarea ... 

Dacă nu spune acest lucru, probabilitatea este că instalarea dvs. a eșuat. Trist. În acest caz, încercați să verificați permisiunile dvs. și că ați instalat PIP. În cazul în care nu există încă, încercați să întrebați Stack Overflow (care a fost discutat anterior 10 site-uri care pot ajuta programatorul începător cu fragmente de cod exemplu 10 site-uri web care pot ajuta programatorul începător cu fragmente de cod de probă Citiți mai mult prin editorul nostru de Internet, Saikat Basu ) sau Răspunsuri MakeUseOf.

Acum că este sortat, creați un nou director. Aici este locul unde vom pune tot codul nostru. Deschideți un editor de text și creați un fișier numit "shtest.py". Aici, vom crea pur și simplu un fișier nou, apoi vom enumera conținutul directorului în care suntem. Sună bine?

În shtest.py, adăugați următoarele rânduri.

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

Lucruri simple aici. Hai să ne descurcăm.

#! / usr / bin / env Python

Această linie este numită hash-bang și instruiește shell-ul dvs. să deschidă acest fișier ca pe un program Python. Aceasta vă permite să o deschideți ca pe un script de shell (./shtest.py), în loc să o deschideți direct cu Python (python shtest.py). Răcoros, bine?

import sh

Această linie importă biblioteca sh pe care am instalat-o cu câteva clipe în urmă. Nu putem continua fără asta, deci asigurați-vă că este în codul vostru!

sh.touch ( 'bună')

S-ar putea să fiți familiarizați cu comanda Linux, 'touch'. Acest lucru creează un fișier gol cu ​​numele fișierului pe care îl specificați. Aici, suntem direct numiți "touch" din interiorul Python. După cum puteți vedea, am făcut acest lucru cu "sh." Și îi transmitem un parametru de "salut".

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

S-ar putea să fiți familiarizați cu comanda "tipărire", care transmite textul în consola. Aici, prezentăm "sh.ls" ca parametru. Aceasta numește programul Linux ls, care afișează conținutul unui director. De asemenea, trecem un parametru "-l", care imprimă informații mai detaliate despre conținutul directorului pe care îl executăm în.

Funcționează? Convinge-te singur.

Cei dintre voi cu ochi de șoimă vor observa că există un alt fișier plutitor în acel director numit "gitsh.py". Ce ar putea fi acolo?

Sub comandă

sh.py are unele cârlige pentru programe populare deja coapte. Acestea includ git, sudo și un număr semnificativ de utilitare Linux. Acestea fac interacțiunea cu aceste servicii din cadrul Python chiar mai ușoară.

Ce usor? Ei bine, am să vă arăt cum să inițializați un depozit Git gol în doar trei rânduri de cod. Mai întâi, creați un fișier numit "gitsh.py" și deschideți-l în editorul dvs. de text preferat.

În interior, scrieți următoarele trei linii.

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

Cele mai multe dintre acestea ar trebui să vă fie destul de familiare. Veți observa că am importat "git" de la "sh". Aceasta înseamnă că am importat o anumită parte a funcționalității dintr-un modul, ignorând totul.

După aceea, inițializăm depozitul nostru.

Print (git.init ())

Am vorbit despre imprimare. Ar trebui să observați că sunăm "git" fără ".sh" continuând. Acest lucru se datorează faptului că am importat în mod specific funcția git din biblioteca "sh".

Și asta e vorba de asta. Când rulați gitsh.py, ar trebui să vedem următoarele linii care apar în terminalul dvs..

Concluzie

A fost o introducere destul de ușoară în sh.py. Dacă sunteți dornici să aflați mai multe despre aceasta, consultați documentația oficială aici. Cu toate acestea, dacă rămâneți blocat, nu ezitați să renunțați la un comentariu de mai jos și voi încerca să vă ajut.

Explorați mai multe despre: Programare, Python, Terminal.