Domanda

Per la scrittura di script per il processo di automatizzazione nella piattaforma Linux, che linguaggio di scripting sarà il migliore?Script di Shell, Perl o Python o c'è qualcos'altro?Eccomi di nuovo a tutti.Così, sto solo pensando a che uno per andare?

È stato utile?

Soluzione

La risposta è:Qualunque cosa si adatta meglio il lavoro!

La mia regola;

Bash - per un breve script che potrebbe avere bisogno di un ciclo for per fare qualcosa di ripetitivo.

Perl - nulla a che fare con un qualche tipo di elaborazione di testo o file di elaborazione, soprattutto se si tratta di un one off.Basta fare una sporca brutta script perl e da fare con esso

Python - Se si tratta di qualcosa che si potrebbe desiderare di fare di nuovo o qualcosa di molto simile.Poi almeno si ha la possibilità di essere in grado di riutilizzare lo script.

Altri suggerimenti

Andare per tutti e tre di loro, iniziare con bash/awk/sed plus fileutils (grep, trovare, e così via) e poi spostarsi verso l'astrazione gerarchia con perl e python.

In questo modo si sarà in grado di decidere per te uno che si adatta alle vostre esigenze.Io dico di iniziare con bash e gli amici, perché essi sono onnipresenti, in alcune macchine non avere perl o python installato e ti senti impotente, soprattutto in unix tradizionale terra (vale a dire, non linux)

Quando la scelta di un linguaggio di scripting per automatizzare il vostro ambiente linux / unix, la cosa più importante a mio parere è...per la sostituzione :-)

Intendo il prossimo / altri amministratori di sistema, che può avere per mantenere il vostro script.Attualmente sto lavorando in un ambiente dove il piombo Unix ragazzo è un vero e proprio script di testa, ma ha soprattutto si trattenne per uso di bash, con alcuni perl e windows vbscript gettato in buona fortuna.Almeno mi ha costretto a rispolverare il mio perl.

Pur concordando con gli altri commenti qui, il mio suggerimento sarebbe quello di master bash, se possibile, di fare quanto più possibile in bash, come la maggior parte delle persone sanno, e in grado di mantenere / debug.E sarà più portatile.Utilizzare con sed & awk è particolarmente potente.

Quando hai a che imparato, si può venire qui e chiedere "Quale linguaggio di scripting dovrei imparare dopo che la bash?" :-)

JB

Penso che dipende da come il complesso di attività che si desidera automatizzare.Personalmente, io sono sempre andato con la shell-script, che consente di effettuare una chiamata su awk, sed, grep, trovare, ls, gatto, etc.che possono essere combinati insieme per fare praticamente qualsiasi cosa che si può realizzare utilizzando perl o python.D'altra parte, se i processi che si desidera automatizzare sono complessi (ad es., non è solo una sequenza lineare di passi), quindi probabilmente troverete che la scrittura di script in perl o python (o anche ruby!) è molto più veloce e li rende più facile da mantenere.

Io uso Perl per nulla al di là di estremamente semplice script.

Anche io 'use warnings', 'use strict', evitare gli apici inversi, sistema di 'system($command, @and_args)'.E perché mi piace essere manutenibile:IPC::Run (tubi), File: Fu (per i nomi di file, tempfiles, ecc), YAML (per configurazioni o misc dati), e Getopt::Utili (in modo da poter ricordare ciò che le opzioni erano.)

Dipende dalla complessità e dal dominio del problema del compito a portata di mano.

Script Bash sono rapido e sporco per il semplice sistema di compiti di automazione.Per cose più complesse di spostare file e l'esecuzione di comandi, vorrei personalmente dire Perl è il prossimo in linea come la de facto sys-admin goto strumento di automazione.Per di più concentrarsi sul riutilizzo del codice e la leggibilità/manutenibilità vorrei fare un passo su di esso fino a Python o Ruby.

PHP può anche essere utilizzato per automatizzare le operazioni, tuttavia, non è ampiamente accettata per questo scopo nella mia esperienza.

Si tratta veramente basso per quello che la lingua si sono più interessati ad apprendere, la maggior parte può essere utilizzata per l'automazione, oltre a molte altre cose.

Io preferisco gli script di shell, solo per piccoli compiti.La scrittura robusta script di shell richiede un sacco di conoscenze circa le possibili insidie, che è solo imparare facendo.Ma imparare anche le basi aumenterà la vostra produttività un sacco!!!

Se ho bisogno di avere una logica complessa, io di solito uso Python.Dal complesso intendo qualsiasi cosa che abbia più di due se-dichiarazioni =)

Perl è bene per il suo scopo originale, ma essere avvertito che molti di perlisms si impara non sono applicabili in qualsiasi altro luogo.

Python e Ruby sono approssimativamente equivalenti.Io ti consiglio di imparare una bene e il check-out un tutorial sull'altro.Io preferisco Python, ma in realtà si tratta di preferenze personali.

Per riassumere: Imparare le basi di script di shell.Imparare almeno Python o Ruby bene.

Ho ricevuto Python raccomandato per tutto il tempo.Si suppone che consentono di fare qualsiasi cosa.Per i piccoli compiti, io uso gli script di shell, però.

Io di solito dico quello che si sa meglio in grado di ottenere i risultati desiderati.Come tutte le guerre di religione, e dopo aver imparato un gran numero di lingue, ti rendi conto che si può fare la maggior parte delle cose in più lingue (Nota che ho fatto dire di più).Io uso Perl.È forse non è aggiornato come Python o Ruby, ma ha un enorme libreria di supporto da CPAN.E non ho trovato nulla che posso fare ancora.Quando mi farò a guardare le altre lingue, per scoprire di che si può riempire quel vuoto.

Se ero a partire da oggi, forse sceglierei il Python o Ruby, ma non so abbastanza su di loro per dare un giudizio di chiamata.Qualcuno dei tuoi amici/colleghi di conoscere linguaggi di scripting.Questo potrebbe aiutare in maniera massiccia come supporto durante l'apprendimento di una nuova lingua è molto importante.

Buona fortuna

Beh, è come questo:

Perl non è più user friendly linguaggio di scripting, ma ha CPAN (Comprehensive Perl Archive Network), che contiene migliaia di librerie che implementano quasi tutto ciò che si può pensare, e Perl è molto potente quando si tratta di elaborazione di testo.Lo svantaggio sarebbe che il codice del perl è un po ' difficile da mantenere (se non la conosci molto bene).

Python è un linguaggio di scripting che sta diventando sempre più popolare tra gli autori di script.Non hanno una comunità come CPAN (ancora), ma è più leggibile, ed è più facile da mantenere.E ' veloce come il perl.

Ruby è l'ultima tendenza in linguaggi di scripting.Ruby è pieno OOP, il che significa che tutto è un oggetto.Il suo vantaggio è che il codice è molto leggibile, ed è abbastanza facile da imparare, se sei un principiante.Il principale svantaggio è la sua velocità di esecuzione, che un pò s* * x.

Che dipende da che tipo di automazione che si sta facendo, come se si è in test automation Perl è consigliato perché il Perl è molto più potente di moduli di estensione via CPAN, online il modulo Perl inventario.Se avete solo bisogno di uno strumento utile per completare un semplice file di origine, awk è molto conveniente.Se avete intenzione di utilizzare gli script per automatizzare un grande progetto, Perl è una scelta migliore con più funzioni.Di nuovo Python è stato progettato fin dall'inizio come un linguaggio object-oriented.Perl 5 che dispone di alcuni o-o aggiunta di funzioni, ma a me sembra imbarazzante il retrofit.Python è ben implementato o-o caratteristiche per molteplici l'ereditarietà, polimorfismo, incapsulamento e il.n sintesi, mi sembra che Python domina Perl nella maggior parte delle applicazioni ad eccezione piuttosto breve, shell-script i tipi di applicazioni, e ci sono all'incirca paragonabile.

Se si desidera minimalista, compatto e veloce soluzione più veloce rispetto a Python/Ruby) e poi -> andare per il linguaggio di scripting LUA :-) Tuttavia Lua di velocità e il codice di compattezza è realizzato da relativelly piccola linguaggio Lua core, quindi se volete pile incluse" (aka.molto grande le librerie "standard") quindi Lua non è per voi.Altrimenti, ragazzi che provengono da C/C++ mondo che gode di Lua velocità :-)

p.s.

Lua vs Ruby 1.9 benchmark (si possono anche guardare Lua Vs Python 3):

http://shootout.alioth.debian.org/u32/benchmark.php?test=all&lang=lua&lang2=yarv

Dipende da cosa si vuole fare, uso regolarmente tutti:

  • Shell per un semplice batch di comandi, con forse un loop o un se-economico.
  • Perl quando vado a sgranocchiare il file e fare qualche sostituzione del testo e souch cose.
  • Python quando hanno bisogno di più di logica.

Sotto *nix si dovrebbe usare lo strumento giusto per il lavoro giusto, che può essere difficile per i principianti, dal momento che è così tante cose da imparare (dopo circa 15 anni come un *nix utente devo ancora trovare cose nuove).Il mio consiglio è di guardare tutte le lingue in fretta per vedere che cosa possono fare, e poi iniziare con l'utilizzo di shell per tutto, quando il tuo script diventa goffo spostarli a qualcos'altro.

Basta scrivere il vostro comandi uno dopo l'altro, metterlo in un file ed eseguire il file con

promp> bash file

e avrete il vostro primo automazione.Quindi conoscere bash variabili, cicli e strutture di controllo.

Secondo I Python - potente, semplice, performante, e...in realtà abbastanza divertente, rispetto a perl o bash.Anche se si sa di esso, troverete altri usi, è utilizzato in un sacco di progetti.E non solo come un "classico" linguaggio di scripting, come ad esempio la twisted progetto.Questo è vero per il Perl troppo credo, ma mi piace Python migliore ordine di grandezza di me

Linea di fondo, però, è come è stato detto beofre, assicurarsi di avere lo strumento giusto per il lavoro...

Se dovessi sceglierne uno, sarebbe AWK.E ' leggero, ha una piccola curva di apprendimento e ha molte funzioni utili come indice e substr.

Se si mira ad avere un semplice script per il programma di "controllo" di un altro (da riga di comando, ovviamente) del programma, quindi è necessario rivedere Tcl/Tk, in particolare il suo dialetto aspettiamo - sono semplici e orientata verso l'obiettivo, è molto facile creare uno script che controlli ftp e anche un su con loro!

Awk è molto bello per elaborare file di testo - non è potente come il perl, ma è molto più semplice e lineare (e senza l'orribile sintassi).

Naturalmente, il vostro chilometraggio può variare, quindi credo che la risposta migliore sarebbe quella di chiedere a voi:cosa vuoi scrivere script per?E poi:Hai familiarità con qualsiasi linguaggio di script?Le risposte a queste domande vi è il linguaggio di scripting che si deve usare, secondo i pro/contro di ciascuna di esse e il loro obiettivo principale.

Su Linux?Scegli il tuo veleno, fondamentalmente.Mi piace Python, altri Ruby, altri ancora Perl.Sceglierne uno e andare per esso.:-)

Direi che Python è molto alta leggibilità, è semplice( senza parentesi graffe, parole chiave più vicino all'inglese come possibile etc.) e si può fare quasi tutto, dal più semplice al più complesso di cose.È anche popolare e divertente codice.

Questo può sembrare un po ' strano, ero stato con bash per oltre 10 anni.Ho iniziato ad usare PHP5 ed è stato difficile in un primo momento, ma ora ho una migliore base di codice riutilizzabile.

Io non lo consiglio come punto di partenza, però!

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top