[общие советы по написанию сценариев см. в других ответах]
Этот ответ касается использования программ командной строки, а также их больших цепочек.
Для запуска цепочек программ CLI и, возможно, для многих цепочек в последовательности, bash является самым простым. Perl может делать то же самое, но язык гораздо сложнее выучить, он гораздо сложнее, и, как отмечают многие, легко написать понятный Perl.
Если вы перебираете файлы и параметры, bash проще всего начать, поскольку вы можете создать прототип в оболочке, затем скопировать в скрипт и добавить несколько массивов и циклов с минимальными издержками.
Примеры того, что я имею в виду:
$ 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}
В bash легко обернуть это в несколько циклов по некоторым из этих параметров. Тем не менее , код становится трудно читать, когда сценарий занимает более нескольких десятков строк. --- представьте себе 30 наборов команд (по несколько строк в каждой) для тридцати различных графиков данных ---
Perl и Python могут быть лучше для больших сценариев, потому что они имеют более чистый синтаксис для циклов и переменных, но команды bash должны быть сгенерированы как строки, запущены как подпроцессы, а stdin зафиксирован как stdout. Это может быть сделано, но не может полностью заменить нативную среду оболочки.
Если бы у снарядов был лучший язык, всего этого можно было бы избежать.