Quantas linguagens de programação você conhece que permitem abrir um arquivo para leitura, chamar uma função de biblioteca que consome o conteúdo desse arquivo, transmitir a saída dessa função para outra, retornar a saída da segunda função para a usuário, retornar um status de saída e, em seguida, limpar tudo depois, tudo em uma linha muito curta?
O exemplo que você dá deixa de fora muitos dos gubbins de suporte que a maioria dos idiomas precisa.
Quantas linguagens de programação possuem funções de biblioteca que aceitam números arbitrários de entradas, funcionam em vários modos e possuem uma interface simples?
printf
, talvez, mas a maioria das bibliotecas tem uma gama completa de funções com diferentes nomes e diferentes parâmetros que você precisa aprender. Eu não vejo a diferença.
Além disso, a maioria dos idiomas chamaria as funções em série. Scripts Shell os executam em paralelo e podem transmitir quantidades arbitrárias de dados através do pipeline sem consumir muita memória, e (se a fonte de dados é o teclado, ou um soquete de rede, ou algo assim) tudo é feito com avaliação preguiçosa, como e quando os dados chegam. Sua linguagem favorita faz isso?
Existem muitas linguagens que podem fazer o trabalho mais rapidamente, ou de forma mais eficiente, ou podem selecionar os números com mais precisão, mas não subestime o poder do script de shell!
Quanto à sintaxe? Bem, isso funciona. Você teria que aprender, não importa agora, parecia. O que mais você quer?