What are the differences between shell languages like bash, zsh, fish and the scripting languages above that makes them more suitable for the shell?
When using the command line the shell languages seem to be much easier. It feels for me much smoother to use bash for example than to use the shell profile in ipython, despite reports to the contrary. I think most wil agree with me that a large portion of medium to large scale programming is easier in Python than in bash. I use Python as the language I am most familiar with, the same goes for Perl and Ruby.
I have tried to articulate the reason but am unable to, aside from assuming that the treatment of strings differently in both has something to do with it.
The reason of this question is that I am hoping to develop a language usable in both. If you know of such a language, please post it as well.
Edit: As S.Lott explains, the question needs some clarification. I am asking about the features of the shell language versus that of scripting languages. So the comparison is not about the characteristics of various interactive (REPL) environments such as history and command line substitution. An alternative expression for the question would be:
Can a programming language that is suitable for design of complex systems be at the same time able to express useful one-liners that can access the file system or control jobs? Can a programming language usefully scale up as well as scale down?