[genel komut dosyası önerileri için diğer yanıtlara bakın]
Bu cevap, komut satırı programlarının kullanımı ve bunların büyük zincirleriyle ilgilidir.
CLI programlarının zincirlerini ve belki de sırayla birçok zinciri çalıştırmak için bash en kolayıdır. Perl de aynısını yapabilir, ancak dili öğrenmek çok daha zordur ve çok daha karmaşıktır ve birçoğunun belirttiği gibi anlaşılabilir Perl yazmak kolaydır.
Dosya ve parametreler üzerinde yineleme yapıyorsanız, bash en iyi yöntemdir b / c kabukta prototip yapabilir, daha sonra bir komut dosyasına kopyalayabilir ve minimum ek yük ile bazı diziler ve döngüler ekleyebilirsiniz.
Ne demek istediğimin örnekleri:
$ 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'da, bu parametrelerin bazılarına birkaç döngü halinde sarmak kolaydır . Ancak , komut dosyası birkaç on satırdan fazla olduğunda kodu okumak zorlaşır. --- 30 farklı veri grafiği için 30 komut seti (her biri birkaç satır) düşünün ---
Perl ve Python, büyük komut dosyaları için daha iyi olabilir, çünkü döngü ve değişkenler için daha temiz bir sözdizimine sahiptir, ancak bash komutları dize olarak oluşturulmalı, alt işlemler olarak çalıştırılmalı ve stdin, stdout yakalanmalıdır. Bu yapılabilir, ancak yerel kabuk ortamının tamamen yerini alamaz.
Eğer mermilerin daha iyi bir dili olsaydı, bundan kaçınılabilirdi.