Começando por sua criação, para o Linux, um dos melhores editores que conheço é chamado Kate que possui um terminal embutido, veja uma imagem dele abaixo. Já a sua localização pode variar de usuário para usuário, pessoalmente gosto de mantê-los organizados embaixo de uma única pasta.
Para criar um Script, criamos um arquivo texto comum, na primeira linha colocamos o comando que indica ao sistema qual linguagem estamos utilizando e fornecemos a permissão para o arquivo ser um executável, com o comando:
$ chmod +x [nomearquivo]Lembre-se que, por padrão, scripts Python possuem a extensão do arquivo .py enquanto que em Bash usamos .sh, recomendo que utilizemos esta forma de modo a identificar mais facilmente os arquivos.
Não existe a menor diferença entre o que podemos conseguir com Bash ou Python, o que existe é facilidade de escrita. Por exemplo, o script a seguir dispara dois comandos para obtermos algumas informações do sistema sobre dois comandos que são muito mais úteis com seus parâmetros:
- uname: fornece o nome do seu sistema, porém com o parâmetro -a fica mais completo.
- df: fornece o espaço livre e ocupado de cada partição, porém com o parâmetro -h essa informação fica, visualmente falando, melhor.
#!/bin/bash printf "Sobre seu sistema:\n" uname -a df -hJá a mesma funcionalidade se fosse escrita em Python, seria assim:
#!/usr/bin/env python import subprocess print "Sobre seu sistema:" subprocess.call(["uname", "-a"]) subprocess.call(["df", "-h"])Ou seja, notamos que neste caso Bash seria muito mais simples e fácil de entender. Mas então basta apenas usar Bash e pronto? Nem sempre, vamos comparar dois Scripts que buscam uma determinada palavra em um arquivo qualquer, para o nosso exemplo crie um arquivo chamado "arquivo.txt" com o seguinte conteúdo:
Trecho esta em 1 Aqui em dois nao tem Em tres tem Trecho Em quatro nao E tem trecho em cinco, mas minusculoEstá sublinhado a palavra "Trecho" apenas para observarmos melhor onde ocorre, e em negrito a palavra iniciada com a letra em minúscula. Em Bash o script seria escrito assim:
#!/bin/bash ARQUIVO="arquivo.txt" TRECHO="Trecho" TOTAL=(`tr " " "\n" < $ARQUIVO | grep $TRECHO|wc -w`) echo "A palavra '$TRECHO' ocorre $TOTAL vezes no arquivo $ARQUIVO."Já em Python ficaria assim:
#!/usr/bin/env python arquivo = "arquivo.txt" trecho = "Trecho" total = 0 try: fileObject = open(arquivo) for lin in fileObject: total += lin.count(trecho) except: print "Arquivo " + arquivo + " inexistente." sys.exit(1) finally: fileObject.close() print "A palavra '" + trecho + "' ocorre " + str(total) + " no arquivo " + arquivo + "."Algumas observações sobre o Script em Bash, primeiro que as variáveis não obrigatoriamente devem estar em letras maiúsculas, porém o sinal de igual deve estar colado (sem uso de espaço). Segundo é que o comando colocado em TOTAL usa dois "macetes" o primeiro é que o sinal "`" não é aspas simples, mas o caractere que normalmente usamos para conseguir a crase. E finalmente o comando é uma agregação dos comandos "tr", "grep" e "wc" para conseguirmos a totalização das ocorrências.
Já em Python, apesar de muito maior acredito que seja de auto entendimento (obviamente partindo do princípio que conhece a linguagem), ou seja, no caso de uma manutenção seria muito mais simples em Python do que em Bash. Scripts devem ser usados para serem de fácil entendimento, não adianta escrevermos 3 ou 4 linhas e na hora que precisamos modificar algo ficarmos completamente perdido.
Se duvida, tente modificar ambos os scripts para localizar a palavra pouco importando letras maiúsculas ou minúsculas, veja qual dará mais trabalho.
Obrigado e até a próxima
Fernando Anselmo
Muito interessante tua análise. Obrigado
ResponderExcluir