Shells tidak melakukan reorganisasi kode yang mereka dapatkan, itu hanya ditafsirkan satu demi satu baris (tidak ada yang lebih masuk akal dalam penerjemah perintah). Sebagian besar waktu yang dihabiskan oleh shell digunakan untuk analisis leksikal / parsing / meluncurkan program yang disebut.
Untuk operasi sederhana (seperti string munging dalam contoh di akhir pertanyaan), saya akan terkejut jika waktu memuat program tidak membanjiri perbedaan kecepatan yang sangat kecil.
Moral dari cerita ini adalah bahwa jika Anda benar-benar membutuhkan lebih banyak kecepatan, Anda lebih baik dengan bahasa yang dikompilasi (semi) seperti Perl atau Python, yang lebih cepat dijalankan untuk memulai, di mana Anda dapat menulis banyak operasi yang disebutkan secara langsung dan tidak perlu memanggil program eksternal, dan memiliki opsi untuk memanggil program eksternal atau memanggil modul C (atau apa pun) yang dioptimalkan untuk melakukan banyak pekerjaan. Itulah alasan mengapa di Fedora "gula administrasi sistem" (GUI, pada dasarnya) ditulis dengan Python: Dapat menambahkan GUI yang bagus dengan tidak terlalu banyak upaya, cukup cepat untuk aplikasi seperti itu, memiliki akses langsung ke panggilan sistem. Jika itu tidak cukup cepat, ambil C ++ atau C.
Tetapi jangan pergi ke sana, kecuali jika Anda dapat membuktikan bahwa perolehan kinerja sepadan dengan hilangnya fleksibilitas dan waktu pengembangan. Skrip shell tidak terlalu buruk untuk dibaca, tetapi saya bergidik ketika saya ingat beberapa skrip yang digunakan untuk menginstal Ultrix Saya pernah mencoba menguraikan. Saya menyerah, terlalu banyak "optimasi skrip shell" telah diterapkan.