Linux = Existe algo como um “Java Shell” em vez de outros shells linux?

7

A linguagem de programação que eu mais conheço é Java. Atualmente eu tenho que escrever um monte de "scripts de shell" para automatizar meus servidores. Existe algo como um "Java Shell" para que eu possa escrever os scripts de shell em Java?

    
por jens 26.02.2011 / 16:22

8 respostas

4

Você pode se divertir e usar groovysh. Eu fiz algumas coisas com isso, mas acho perl ou bash / sh o mais útil para fazer scripts admin. Uma linguagem de aplicativo como o Java adiciona muita sobrecarga quando tudo que você precisa fazer é executar comandos do SO e pesquisar texto.

    
por 26.02.2011 / 20:52
11

Não existe uma exigência real de que "shell scripts" tenham que ser escritos em uma linguagem shell, você poderia fazer tudo com C ou até Assembler, se você gosta disso.

No contexto de scripts de shell, o shell nada mais é do que um interpretador para uma linguagem de programação, como Perl ou PHP, mas altamente otimizado para o tipo de trabalho que você faz principalmente com um shell script.

A longo prazo, sugiro que você aprenda bash ou algo assim, o que não é realmente difícil, porque as shells são muito limitadas em suas habilidades, de modo que não há muito a aprender.

    
por 26.02.2011 / 16:36
3

Algumas das linguagens jvm mais leves possuem shells, mas são front-ends para o interpretador, não para dialetos customizados para administração de sistemas. Um bom shell de sistema precisa ter um excelente suporte a descritor de processo e arquivo e ter sintaxe e built-in concisos, e não acho que exista em Java.

Você pode misturar programação com scripts com coisas como chef, fantoche, vlad e coisas do tipo, mas isso significa aprender bash scripting primeiro, porque essas linguagens, muito sensivelmente, delegam comandos para o shell. Idiomas como Ruby, Perl e Python são menos verbosos e você os verá muito usados. A verbosidade do Java e alguns de seus valores centrais (fazem tudo no jvm, não deixam o ide) o tornam muito inadequado para a tarefa.

    
por 26.02.2011 / 17:57
3

Sim, existe. Eu tenho usado BeanShell de tempos em tempos, mesmo que não esteja em desenvolvimento ativo no momento. É um interpretador para sintaxe Java padrão e também vem com um interpretador gráfico / ambiente, se necessário.

Você poderia escrever seus scripts de shell conforme descrito nos documentos do BeanShell , mas teria que fazer o arquivo jar do Beanshell disponível para a sua instalação do Java para isso (por exemplo, coloque-o na pasta /ext/lib de sua instalação do JRE), caso contrário, o java não encontrará a classe bsh.Interpreter .

No entanto, eu também recomendo dar uma olhada mais de perto nas suas opções de shell scipting (você não mencionou o seu ambiente, mas a recomendação da TiZon com o bash é legal ao usar o Linux). O uso de uma linguagem de programação de finalidade geral completa, como Java, só atrapalha ao tentar ser produtivo com tarefas semelhantes a shell, por exemplo. g. movendo arquivos ao redor, invocando comandos e os gostos.

    
por 26.02.2011 / 20:36
2

Você provavelmente deve dar uma olhada em Bash Scripting .

    
por 26.02.2011 / 16:36
2

Eu escrevi jpad.io para permitir a execução de "shell scripts" e trechos interativos em java, além de fornecer uma boa visualização dos resultados. Isso mostra o que quero dizer:

Paracopiarumarquivousandoissocomoumalinguagemdescript,vocêusaria: link

final File file = new File("outt.csv");
Object o = new int[] {1,2,3};
JPad.writeCsv(o, file);
java.nio.file.Files.copy(file.toPath(), Paths.get("copy.csv"));

Que você também pode executar a partir da linha de comando como:

 > jpad fileio.jpad
 > dir
 29/04/2017  13:30    <DIR>          .
 29/04/2017  13:30    <DIR>          ..
 29/04/2017  13:30                16 copy.csv
 29/04/2017  13:30               160 fileio.jpad
 29/04/2017  13:30                16 outt.csv
    
por 29.04.2017 / 14:41
0

Sim, adicione o .shell em seu diretório Javahome / jre / lib / ext e, em seguida, você pode iniciar scripts assim:

java bsh.Interpreter myscript.bsh
    
por 08.09.2011 / 01:25
0

PowerShell, um shell orientado a objetos que pode usar bibliotecas C #, foi opensourced e está disponível para Linux .

    
por 29.04.2017 / 19:29

Tags