Ci si dovrebbe aspettare che bash cambi in modi che rompono quantità non banali di script esistenti ad un certo punto nel futuro (vicino / 5 ore)? Quanti cambiamenti ha avuto negli ultimi dieci anni rispetto a, per esempio, python o perl?
Ci si dovrebbe aspettare che bash cambi in modi che rompono quantità non banali di script esistenti ad un certo punto nel futuro (vicino / 5 ore)? Quanti cambiamenti ha avuto negli ultimi dieci anni rispetto a, per esempio, python o perl?
bash
è stato intorno a dal 1989 , e la sua sintassi è ampiamente compatibile con quello della shell Bourne molto più vecchia, che è stata rilasciata nel 1977 . Enormi andamenti di funzionalità di base in molti sistemi operativi (la maggior parte delle distribuzioni Linux, OS X e in effetti la maggior parte dei sistemi operativi POSIX) e molti sistemi reali (sistemi, test automatizzati, script di inizializzazione, ecc.) Dipendono dalla sua funzionalità .
Bash non sta andando da nessuna parte, perché se rompesse gli script esistenti, causerebbe enormi problemi. Al contrario, Bash si è impegnato a preservare la retrocompatibilità con ogni nuova aggiunta di sintassi.
È improbabile che la sintassi di bash cambi in modo significativo. Le modifiche ad esso potrebbero avere effetti catastrofici su sistemi unix (gli script di avvio non funzionano dopo l'aggiornamento).
Si può vedere che le cose sono avanzando in avanti con bash, e vari le distribuzioni stanno lentamente aggiornando il codice per rimuovere la comparabilità all'indietro con le versioni precedenti di bash.
Se si sta aggiornando un sistema e si vede che bash sta aggiornando, potrebbe essere necessario testare quegli script antichi per assicurarsi che tutto funzioni ancora correttamente. Probabilmente lo farò, ma non vorrei essere quello che fa un "OMG Fix tutto ieri!" quando qualcosa non funziona, dopo aver fiducia che tutto vada.
In teoria, se le persone seguivano le best practice per gli script di bash, dovrebbe funzionare, ma poi di nuovo, per favore non prendermi in parola.
Perl e Python mantengono la compatibilità all'indietro all'interno dei numeri di versione principali. Qualcosa scritto per perl 5.001 (1995) funziona ancora correttamente in perl 5.16.1 (9 agosto 2012). Uno script per perl 5 dovrà essere eseguito nella modalità di compatibilità con perl 6.
Python sembra seguire un simile "nulla che si rompa all'interno di una versione principale". Dai anche a Python 2 o 3 un look per la compatibilità a ritroso con Python tra le versioni principali.
Leggi altre domande sui tag linux scripting bash backward-compatibility