[ogólne porady dotyczące skryptowania, zobacz inne odpowiedzi]
Ta odpowiedź dotyczy korzystania z programów wiersza polecenia, a także ich dużych łańcuchów.
Do uruchamiania łańcuchów programów CLI i być może wielu łańcuchów w sekwencji, bash jest najłatwiejszy. Perl może zrobić to samo, ale język jest znacznie trudniejszy do nauczenia się i jest znacznie bardziej złożony, i jak wielu zauważyło, łatwo jest napisać zrozumiały Perl.
Jeśli iterujesz po plikach i parametrach, bash jest najłatwiejszy do zrobienia b / c, możesz prototypować w powłoce, a następnie skopiować do skryptu i dodać kilka tablic i pętli przy minimalnym obciążeniu.
Przykłady tego, co mam na myśli:
$ 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}
W bash łatwo jest zawinąć to w kilka pętli nad niektórymi z tych parametrów. Jednak kod staje się trudny do odczytania, gdy skrypt ma więcej niż kilkadziesiąt linii. --- wyobraź sobie 30 zestawów poleceń (po kilka wierszy) dla trzydziestu różnych wykresów danych ---
Perl i Python mogą być lepsze dla dużych skryptów, ponieważ mają czystszą składnię dla zapętlania i zmiennych, ale polecenia bash muszą być generowane jako łańcuchy, uruchamiane jako podprocesy i przechwytywane stdin, stdout. Można to zrobić, ale nie można w pełni zastąpić natywnego środowiska powłoki.
Gdyby powłoki miały lepszy język, wszystko by tego uniknęło.