Учитывая проблему, с которой могут справиться оба, вы захотите использовать ту, которая вам наиболее удобна. В конечном счете, есть много мелких деталей, и только опыт может научить вас видеть их.
Bash - это язык сценариев общего назначения, такой же, как Python, Ruby, Perl, но каждый из них имеет свои сильные стороны по сравнению с остальными. Perl превосходен в анализе текста, Python претендует на звание самого элегантного из всех, скрипты Bash отлично справляются с "обкаткой", если вы понимаете, о чем я, и Ruby ... ну, Ruby немного особенный способов.
Тем не менее, различия между ними действительно имеют значение только тогда, когда у вас есть достаточный опыт написания сценариев. Я предлагаю вам выбрать один язык и довести его до предела, прежде чем переходить к следующему. Вы можете многое сделать в сценарии оболочки, что большинство людей признают. Любой язык так же сложен, как и ты. После того, как вы написали в нем пару вещей, каждый язык для вас "легкий".
Быть знакомым с оболочкой быстро окупается, если вы живете в Linux, поэтому, возможно, вы захотите начать с этого. Если вы найдете задачу, которую невозможно или непрактично решить в сценарии оболочки, используйте что-то еще.
Также имейте в виду, что изучение сценариев оболочки очень просто. Реальная сила этого заключается в других программах, таких как awk, sed, tr и др.