[để được tư vấn về kịch bản chung, hãy xem các câu trả lời khác]
Câu trả lời này là về việc sử dụng các chương trình dòng lệnh và cả chuỗi lớn của chúng.
Để chạy các chuỗi chương trình CLI và có lẽ nhiều chuỗi theo trình tự, bash là dễ nhất. Perl có thể làm như vậy nhưng ngôn ngữ khó học hơn nhiều và phức tạp hơn nhiều, và như nhiều người đã chỉ ra, thật dễ dàng để viết Perl dễ hiểu.
Nếu bạn đang lặp lại các tệp và tham số, bash là cách dễ nhất để bạn có thể tạo nguyên mẫu trong trình bao, sau đó sao chép vào tập lệnh và thêm một số mảng và vòng lặp với chi phí tối thiểu.
Ví dụ về những gì tôi muốn nói:
$ 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}
Trong bash, thật dễ dàng để bọc nó trong một vài vòng trên một số tham số đó. Tuy nhiên , mã trở nên khó đọc khi tập lệnh dài hơn vài chục dòng. --- hãy tưởng tượng 30 bộ lệnh (mỗi dòng vài dòng) cho ba mươi ô dữ liệu khác nhau ---
Perl và Python có thể tốt hơn cho các tập lệnh lớn vì chúng có cú pháp sạch hơn cho vòng lặp và biến, nhưng các lệnh bash phải được tạo dưới dạng chuỗi, chạy dưới dạng quy trình con và stdin, stdout bị bắt. Nó có thể được thực hiện, nhưng nó không thể thay thế hoàn toàn môi trường vỏ tự nhiên.
Nếu shell có ngôn ngữ tốt hơn thì tất cả sẽ tránh được.