Bash es un shell de Unix e incluye un lenguaje de script. Es más bien el procesador de comandos. usted controla la forma en que ejecuta los comandos, en realidad los ejecuta.
Perl / Ruby / Python son lenguajes de uso general.
Cuando quieres un script de shell, usas Bash
Si desea una tarea más compleja o no relacionada con el shell. Utiliza Python, etc.
Nunca compararía estos idiomas en realidad. Python, etc.son portátiles. Puedes ejecutarlos en cualquier lugar. Bash es solo para Unix.
Python, etc. tiene toneladas de bibliotecas reutilizables que resuelven millones de tareas.
Es casi lo mismo si preguntas. "Cuándo usar Paint y cuándo usar Photoshop"
Para procesar correos electrónicos, usaría Ruby, una vez más, porque tiene muchas bibliotecas reutilizables.
Pero la mejor manera sería combinar bash y ruby. Eso estaría bien. Al igual que crea una secuencia de comandos de procesamiento de correo electrónico en ruby y bash, invocaría esa secuencia de comandos ruby y ejecutaría otros comandos.
Entonces, cada vez que necesite un procesador de comandos, use bash. Ejecutas comandos unix y los controlas.
ACTUALIZACIÓN después de 7 años (marzo de 2019)
Si bien la parte principal de mi respuesta no cambió, me gustaría señalar eso.
Bash también es un poderoso lenguaje de scripting. Para el procesamiento de texto podría ser una elección legítima absoluta.
Por favor, lea los comentarios de mkaito a continuación. Todos son completamente ciertos.