[per consigli di scripting generali, vedere le altre risposte]
Questa risposta riguarda l'uso dei programmi da riga di comando e anche di loro grandi catene.
Per eseguire catene di programmi CLI, e forse molte catene in sequenza, bash è il più semplice. Perl può fare lo stesso, ma la lingua è molto più difficile da imparare ed è molto più complessa, e come molti hanno sottolineato, è facile scrivere Perl intelligibile.
Se stai iterando su file e parametri, bash è più semplice iniziare b / c, puoi prototipare nella shell, quindi copiarlo in uno script e aggiungere alcuni array e loop con un sovraccarico minimo.
Esempi di cosa intendo:
$ cat input.dat | numerical_model source_data ${SRC} grid_size ${GRID_SIZE} param1 ${P1} param2 ${P2} | tee ${OUTPUT} | plotter title ${TITLE} ylabel ${YLABEL} xlabel ${XLABEL} > ${OUTPUT_FIG}
$ cat ${OUTPUT} | stats_cmd bin_size ${BINSIZE} dist_type ${DIST_TYPE} | tee ${OUTPUT_STATS} | plotter plot_type ${PLOT_TYPE} title ${TITLE_STATS} > ${OUTPUT_FIG_STATS}
In bash, è facile avvolgerlo in alcuni loop su alcuni di questi parametri. Tuttavia , il codice diventa difficile da leggere quando lo script è più di alcune decine di righe. --- immagina 30 serie di comandi (poche righe ciascuna) per trenta diversi grafici di dati ---
Perl e Python potrebbero essere migliori per script di grandi dimensioni perché hanno una sintassi più pulita per cicli e variabili, ma i comandi bash devono essere generati come stringhe, eseguiti come sottoprocessi e stdin, stdout acquisito. Può essere fatto, ma non può sostituire completamente l'ambiente shell nativo.
Se le shell avessero un linguaggio migliore, tutto ciò sarebbe evitato.