Shell script is the most intuitive way to have glue on your system. However, it does not have some useful concepts, such as inheritance and modulation, that languages โโsuch as Python (which are very used to "gluing" systems) have.
True, the use of the language depends mainly on the task you are trying to do. In most cases I worked, the shell script worked well, although I use a lot of Python to perform system-related tasks. I don't think Java would be an alternative in this case. Groovy will probably be, but not Java (I mean Java as a language, not Java as a platform.)
In sysadmin view, I think Python and Ruby are amazing languages. Not only because of the dynamic typing and the lack of the need to compile, but also because tools such as Fabric , Capistrano , Puppet and many others, which greatly simplifies the life of the system administrator :-)
source share