Non è necessario che gli "script di shell" debbano essere scritti in un linguaggio di shell, potresti fare tutto con C o anche Assembler, se ti piace.
Nel contesto degli script di shell, la shell non è altro che un interprete per un linguaggio di programmazione, proprio come Perl o PHP, ma fortemente ottimizzata per il tipo di lavoro che fai principalmente con uno script di shell.
A lungo termine, suggerirei di imparare bash o qualcosa del genere, il che non è davvero difficile perché le shell sono molto limitate nelle loro capacità, quindi non c'è molto da imparare.
Puoi diventare groovy e usare groovysh. Ho fatto alcune cose con quello, ma trovo che perl o bash/sh siano i più utili per fare script di amministrazione. Un linguaggio applicativo come Java aggiunge molto sovraccarico quando tutto ciò che devi fare è eseguire i comandi del sistema operativo e cercare il testo.
Alcuni dei linguaggi jvm più leggeri hanno shell, ma quelli sono front-end per l'interprete, non dialetti personalizzati per l'amministrazione di sistema. Una buona shell di sistema deve avere un eccellente supporto per descrittori di processi e file e avere una sintassi concisa e incorporati, e non credo che esista in Java.
Puoi mescolare la programmazione con lo scripting con cose come chef, pupazzo, vlad e simili, ma questo significa prima imparare lo scripting bash, perché quei linguaggi, abbastanza sensatamente, delegano i comandi alla shell. Linguaggi come Ruby, Perl e Python sono meno prolissi e li vedrai molto usati. La verbosità di Java e alcuni dei suoi valori fondamentali (fai tutto in jvm, non lasciare l'ide) lo rendono molto inadatto all'attività.