Qual é a melhor linguagem Shell Scripting (portátil e de fácil manutenção) atualmente?
Pergunta
Eu sei que esta pergunta deu início a guerras "religiosas" no passado e pode não haver uma resposta correta.Mas depois de trabalhar com ksh e csh nos últimos 3-4 anos e passar pela dor de migrar de um para outro ou aplicar uma lógica comum a múltiplas versões (leia-se como código legado), se estou escrevendo um novo script, eu iria para ksh, mas por compulsão e não por escolha.Existe uma opção melhor além de ksh/csh?Também algo que é portátil em Unixes (Solaris/HP/IBM/FreeBSD) e Linux (e se não estou pedindo muito ou se faz sentido para todos os sabores de Linux)
Aguardando sugestões...
Paz :) Devang Kamdar
Solução
Eu sugeriria o velho sh
, que está disponível em todos os lugares.
Além disso, vale a pena notar que a portabilidade envolve não apenas o shell, mas também outros comandos usados em um script, como awk
, grep
, ps
ou echo
.
Outras dicas
Se você realmente quer que seja portátil (não sei se qualquer shell-script é sustentável), eu especificaria #!/Bin/sh e testou com traço e se possível, outras conchas.
Eu esperaria que o Bash fosse o spread mais amplo no momento, pois é o padrão para muitas distribuições do Linux (ele pode até funcionar no Windows com Cygwin, mas isso provavelmente também é verdade para as outras conchas). Uma alternativa pode ser não usar o próprio shell para scripts, mas uma das linguagens de script por aí como Perl, Python, Ruby, ...
Eu costumo usar ksh.Acho que é um bom compromisso entre recursos e portabilidade.Está lá (ou uma versão compatível está disponível) na maioria das máquinas Linux e Solaris.Já faz um tempo que não uso o HP-UX (felizmente), mas tenho certeza de que ele também estava disponível lá.
Se todas as máquinas que você precisa suportar forem modernas, o bash pode ser uma opção.Solaris 10 vem com uma cópia.É o padrão na maioria das máquinas Linux.
Seu menor denominador comum será Bourne (sh), então vale a pena considerar se a portabilidade é sua principal preocupação.No entanto, estão faltando alguns dos recursos mais amigáveis do ksh e do bash.
Ainda vale a pena evitar csh/tcsh para scripts. Programação Csh considerada prejudicial é antigo, mas ainda bastante relevante.
Minha resposta seria Perl.
Faz tudo 'sh' 'bash' etc. pode fazer de uma maneira mais agradável.
Também é realmente mais portátil. Uma determinada versão Perl é muito consistente, acréscimo todas as plataformas. Não há diferenças significativas entre as distribuições Linux, Solaris e AIX, enquanto a porção de scripts de concha entre essas plataformas é uma dor real.
E funciona em todas as formas do Windows! Desde que você evite backsticks e "System ()", seu script tem uma boa chance de correr.
Pitão! Confira o Ipython, que é um intérprete aprimorado do Python. Também: Python para administração do sistema UNIX e Linux.
Você pode escrever ótimos scripts portáteis, e é divertido.