Acabei de migrar para uma estação de trabalho UNIX. Minha memória dos scripts de shell do Bash desapareceu desde a escola e acho a sintaxe altamente confusa. Gostaria de saber quais outras linguagens de script são usadas para automatizar tarefas. Os dois mais populares que eu já ouvi falar são Perl e Python.
- Qual linguagem de script é mais usada pelas lojas do mundo real?
- Qual linguagem de script se parece mais com a sintaxe C / C ++?
- Existe outra linguagem de script que eu não conheço?
Obrigado pela ajuda,
Scott
Respostas:
Até certo ponto, é uma questão de preferência pessoal. Perl e Python estão definitivamente lá em cima em termos de popularidade.
Para responder duas de suas três perguntas, no entanto:
Minha recomendação é Python. É fácil de ler e escrever, imensamente poderoso, e há muitos recursos úteis na Web para aprendê-lo, sem mencionar o código que você pode copiar e redefinir.
fonte
sh
torna acessível o uso do python como uma linguagem de script de shell; No entanto, se você se deparar com casos extremos (como o multiprocessamento), precisará aprender o módulo de subprocesso que até hoje acho muito difícil de usar.Perl e Python são as respostas óbvias; mas cada um deles é usado para concluir tarefas diferentes:
Com relação a qual aprender agora (já que você presumivelmente não conhece nenhuma delas), eu aprenderia Python. É o mais simples e mais útil de se conhecer.
E quanto às respostas para suas perguntas:
Qual linguagem de script é mais usada pelas lojas do mundo real?
Todos eles, mas eu imagino que o Perl tenha um pouco de vantagem aqui (sendo que ele está em uso na administração do sistema por muito mais tempo).
Qual linguagem de script se parece mais com a sintaxe C / C ++?
Perl
Existe outra linguagem de script que eu não conheço?
Ruby, Tcsh / Csh, http://en.wikipedia.org/wiki/Interpreted_language
fonte
awk para pequenos trabalhos, python para mais do que oneliners.
O Python (se você não usa APIs específicas e outras coisas dependentes da plataforma) possui uma rica "biblioteca padrão", disponível em todas as plataformas nas quais você usa a versão do python. Isso é muito bom, pois você pode reutilizar seus scripts facilmente e significa que seu conhecimento é um bom investimento, mesmo que você mude sua plataforma.
Em nossa empresa, usamos python para todos os scripts, monitoramento e ... e java para o aplicativo, e estamos bem em ambiente heterogêneo.
fonte
Eu diria que perl e python são provavelmente as duas melhores alternativas. Você pode fazer muito com sed e awk também.
fonte
Sh (bourne shell), grep, awk e sed é sempre uma boa coisa para entender novamente. O Perl é excelente se você não deseja muito regexar texto e a manutenção não é tão importante (não dizendo que isso não é possível). Pitão; se a legibilidade é importante para você. Minha preferência é Python, mas todas essas ferramentas são boas para a maioria das coisas. Você pode reconsiderar seu requisito de sintaxe c / c ++, mantendo-o preso não o ajudará a longo prazo.
fonte
Se você deseja aprender algo do zero, provavelmente é melhor (re) aprender o bash.
Além disso, perl e python são populares atualmente; Sou parcial em relação ao perl, mas meu estilo de script em perl não mudou muito desde que o Perl 4 foi lançado.
Não conheço nenhuma linguagem de script "semelhante à c-sintaxe".
fonte
Perl, sem dúvida, pelo menos pelo incrível recurso do CPAN ( http://search.cpan.org/ ). O benefício de usar uma linguagem de script com uma comunidade de contribuidores tão grande é que é improvável que você precise inventar algo sozinho.
O Perl também tem o benefício de ser o mais complexo possível para a situação atual. Você pode tratá-lo como uma linguagem de script simples para administração rápida ou scripts de uso único, mas pode usar conceitos orientados a objetos ou sistemas extensos de meta-objetos quando desejar criar aplicativos maiores e fáceis de manter (como daemons, servidores, clientes).
As diferenças entre as linguagens de script por si só não são graves o suficiente para escolher um vencedor claro, mas você deve observar principalmente como será fácil encontrar informações sobre os tópicos de seu interesse.
A sintaxe Perl também pode estar notavelmente próxima de C, contanto que você possa contornar a falta de digitação e os sigilos; o uso avançado de perl viria naturalmente à medida que você finalmente aprendesse os pontos fortes do idioma.
E para os pessimistas no campo da legibilidade: você pode escrever código difícil de ler em qualquer idioma. Se você revisar seu código de 4 meses atrás e não conseguir entendê-lo, estará fazendo algo errado.
ps Esta postagem foi preenchida com links para vários módulos amigáveis à administração no CPAN, mas aparentemente novos usuários podem postar apenas um link; portanto, use o link CPAN para pesquisar itens como 'CVS' 'SVN' 'Cron' e 'Moose' (um extenso sistema de objetos)
fonte
fonte
[para obter conselhos gerais sobre scripts, consulte as outras respostas]
Esta resposta é sobre o uso de programas de linha de comando e também sobre grandes cadeias.
Para executar cadeias de programas CLI, e talvez muitas cadeias em sequência, o bash é o mais fácil. O Perl pode fazer o mesmo, mas o idioma é muito mais difícil de aprender e é muito mais complexo e, como muitos apontaram, é fácil escrever Perl inteligível.
Se você estiver interagindo com arquivos e parâmetros, o bash é mais fácil de começar porque você pode criar um protótipo no shell, copiar em um script e adicionar algumas matrizes e loops com o mínimo de sobrecarga.
Exemplos do que quero dizer:
No bash, é fácil agrupar isso em alguns loops sobre alguns desses parâmetros. No entanto , o código fica difícil de ler quando o script tem mais do que algumas dezenas de linhas. --- imagine 30 conjuntos de comandos (algumas linhas cada) para trinta gráficos de dados diferentes ---
Perl e Python podem ser melhores para scripts grandes porque possuem uma sintaxe mais limpa para loop e variáveis, mas os comandos bash devem ser gerados como strings, executados como subprocessos e stdin, stdout capturado. Isso pode ser feito, mas não pode substituir completamente o ambiente de shell nativo.
Se as conchas tivessem uma linguagem melhor, tudo isso seria evitado.
fonte
mais usado: Perl, principalmente por razões históricas. O Python está amplamente disponível em todas as distribuições Linux e BSD (é instalado no Mac OSX) e é muito mais agradável de aprender / programar. Obviamente, depois de obter a sintaxe, o Bash é mais simples para quase tudo o que você pode fazer na linha de comando. Afinal, é a linha de comando.
Sintaxe C: existe o csh , mas você pode facilmente instalar o TCC e usar o C real como linguagem de script, compilada a partir da fonte em menos tempo do que a inicialização de outras línguas.
outras linguagens de script: lotes! Lua , Ruby , JavaScript ...
fonte
Você deve usar uma combinação de todos aqueles onde for apropriado. Eu realmente não gosto de perl (legibilidade), mas é bom para muitas coisas. O Python, por outro lado, era algo novo para mim em termos de administração do sistema, até que eu precisei gerenciar (e ainda preciso) algumas máquinas KVM. Iniciar, parar, salvar, carregar, migrar todas essas máquinas via script se tornou realidade após 1 hora de mexer nas ligações python do libvirt.
Por último, mas não menos importante, eu não usaria perl ou python se for necessário, digamos, despejar todos os bancos de dados de um servidor mysql todas as noites (cada banco de dados em seu próprio arquivo de despejo), tará-los e sincronizá-los com outro servidor. Por quê ? Porque é mais rápido e fácil escrevê-lo no bash :)
No final, você deve usar o idioma que melhor se adequa à sua tarefa atual e não usar apenas uma determinada linguagem de script apenas porque gosta mais.
fonte
Eu gosto de rubi É simples e fácil de programar. Há um excelente livro sobre administração de sistemas usando ruby .
O Ruby é usado em vários sistemas de gerenciamento de configurações (capistrano, chef, fantoche) e na última versão do metasploit.
Você pode usar o rush , um substituto para o shell Unix com sintaxe ruby e fazer coisas assim:
fonte
Exemplo de uma linha de Ruby:
Eu usaria rubi.
Compare com sh, é moderno e poderoso.
Compare ao python, é consistência, uma edição, um gerenciador de pacotes. E eu não gosto de sintaxe de indentação.
Compare com Perl, um pouco da velha escola e a sintaxe é muito complexa para mim.
fonte