Vorrei evitare di installare bash su ogni nuova installazione di Debian 6. Quindi ho bisogno di convertire tutti i miei script bash in dash.
- Come lo faresti?
- Quali sono le differenze tra le 2 lingue?
- Sei a conoscenza di eventuali caveat e trappole?
- È possibile automatizzare tale attività?Come migrare gli script da bash a trattino?
risposta
Qui è a page that shows some Bashisms. Puoi usarlo come guida per il porting da Bash a Dash.
Non so perché dici di aver bisogno di installare Bash. È elencato come essential package.
- grazie per il link, questo è il tipo di documento che sto cercando. – dugres
- Ho capito che il dash verrà installato al posto di bash. Saranno entrambi presenti nell'installazione predefinita? – dugres
@dugres: Sì, saranno entrambi installati. Mentre la portabilità e la conformità agli standard hanno i suoi vantaggi, così anche la possibilità di utilizzare le funzionalità extra di una lingua con maggiori capacità. –
La strategia migliore è quella di attenersi a the standard invece di qualsiasi implementazione particolare. Dash è molto più vicino ad esso di Bash.
Si potrebbe provare Loker per ottenere assistenza. Se sei interessato o hai qualche problema, sentiti libero di darmi fastidio via email.
Ci sono anche alcuni other tools.
sì, mi piacerebbe attenermi allo standard, ma non sono sicuro di quale caratteristica di bash sia standard e quale no, e potrebbe non funzionare con dash. – dugres
@dugres: mi dispiace, forse non ero chiaro. Puoi leggere le specifiche per scoprire quali funzioni sono standard, oppure puoi controllare i tuoi script con gli strumenti collegati sopra. Proveranno a dirti se uno script particolare è conforme agli standard. –
grazie, ho intenzione di provare questi strumenti. – dugres
Questo dipende in larga misura dagli script, hai utilizzato un sacco di trucchi specifici di bash? – plundra
Leggermente ironico (s/leggermente/completamente /). Torna indietro nel tempo e assicurati che tutti gli script di bash siano portatili. tongue-in-cheek> Assicurati che tutti i futuri script di bash siano scritti in sh. Automatizzarlo sarà estremamente difficile, specialmente se hai usato un sacco di bashismi. –