Domanda

So che questa domanda è sorta-un ha iniziato le guerre "religiose" in passato e ci potrebbe non essere una risposta corretta. Ma dopo aver lavorato con ksh e csh per ultimi 3-4 anni e passando attraverso il dolore di porting da uno all'altro o l'applicazione di un comune pezzo di logica per più versioni (letto come codice legacy), se sto scrivendo un nuovo script, mi sarebbe andato per ksh, ma per costrizione piuttosto che scelta. C'è una scelta migliore diversa da ksh / csh? Anche qualcosa che è portabile su sistemi Unix (Solaris / HP / IBM / FreeBSD) e Linux (e se non sto chiedendo troppo o se ha senso tutti i sapori di Linux)

In attesa di suggerimenti ...

Pace :) Devang Kamdar

È stato utile?

Soluzione

Vorrei suggerire pianura vecchio sh, che è disponibile in tutto il mondo.

Inoltre, è opportuno notare che la portabilità comporta non solo coperture ma anche altri comandi utilizzati in uno script come awk, grep, ps o echo.

Altri suggerimenti

Se si vuole veramente che sia portatile (non so che qualsiasi script di shell è mantenibile), vorrei specificare #! / Bin / sh e test con dash e, se possibile, altre shell.

mi aspetterei BASH di essere il guscio di diffusione più ampia in questo momento in quanto è il valore predefinito per molte distribuzioni Linux (che può anche essere eseguito su Windows con Cygwin, ma questo è probabilmente vero per le altre shell, troppo). Un'alternativa potrebbe essere di non usare la stessa shell per lo scripting, ma in una delle lingue scriping là fuori come Perl, Python, Ruby, ...

io di solito uso ksh. Trovo che sia un buon compromesso tra funzionalità e portabilità. E 'lì (o una versione compatibile è disponibile) sulla maggior parte delle macchine Linux e Solaris. E 'un po' che ho usato HP-UX (per fortuna), ma sono abbastanza sicuro che era disponibile anche lì.

Se tutte le macchine necessarie per sostenere sono moderne, bash potrebbe essere un'opzione. Solaris 10 viene fornito con una copia. E 'il valore di default sulla maggior parte delle macchine Linux.

Il minimo comune denominatore sarà Bourne (sh), in modo che vale la pena prendere in considerazione se la portabilità è la vostra preoccupazione principale. Che manca alcune delle caratteristiche più amichevoli di ksh e bash però.

E 'ancora la pena di sterzo chiaro di csh / tcsh per lo scripting. Programmazione Csh considerati nocivi è un vecchietto, ma ancora in gran parte rilevante .

La mia risposta sarebbe perl.

Fa tutto 'sh' 'bash' ecc può fare in un modo più bello più elegante.

Anche in realtà è più portabile. Una data versione perl è molto oppure attraversato tutte le piattaforme. Non ci sono differenze significative tra le distribuzioni Linux, Solaris e AIX, mentre il porting script di shell tra queste piattaforme è un vero e proprio dolore.

E funziona su tutte le finestre paltforms! A condizione che evitare di backticks e "sistema ()" lo script ha buone possibilità di correre.

Python! Scopri ipython, che è un interprete Python migliorata. Inoltre:. Python per Unix e Linux Sistema adminitration

È possibile scrivere grandi script portatili, ed è divertente.

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