segunda-feira, 14 de setembro de 2009

sábado, 11 de julho de 2009

quarta-feira, 8 de julho de 2009

sábado, 20 de junho de 2009

domingo, 29 de março de 2009

Dica: Como utilizar uma lista de arquivos que contém espaço no nome de cada um deles

Um dos problemas que pode-se encontrar quando se faz um for utilizando os arquivos de uma determinada localidade são os espaços nos nomes de cada arquivo.

Uma solução facil para isso é fazer o ls ou find, jogar esse conteudo para dentro de um arquivo texto auxiliar e usar um sed para colocar antes de cada espaço uma contra barra para que o comando de dentro do for entenda tudo como sendo o nome de um arquivo somente.

Para isso faça:

ls > $ARQAUX
sed 's/ /\\ /g' $ARQAUX > $ARQAUXSEDED

Assim, você pode fazer um for no arquivo $ARQAUXSEDED que em cada i do for estará o arquivo com seu nome completo.

Se tiverem dúvidas e/ou precisarem de alguma outra coisa... Só postar...

sábado, 28 de março de 2009

Dica: utilizando IFs

Os fórums na internet estão cheios de postagens de pessoas que os seus testes de condição não funcionam.
Primeiro comentário é: vejam se estão utilizando o mesmo shell que os exemplos que estão pegando. (os exemplos que temos nessa postagem usam #ksh)
Segundo, tomem cuidado com os espaços entre os colchetes, comandos e operadores. Nos shell scripts eles fazem diferença sim.
Também tomem cuidado que para cada tipo de comparação deve-se utilizar sintaxes diferentes.
Segue abaixo alguns exemplos (que funcionam!):

if ! [ -e $DIRFALHA ]; then

fi
O exemplo acima serve para verificar se um diretório existe. Notem que o exemplo acima faz uma negação do if com o caracter: !

if [ "$QTDEINSERIDA" = "0" ] ; then

fi
O exemplo acima compara se o valor da variável é igual a "o". Caso seja, ele executará o comando escrito entre a linha da cláusula é o "fi" que indica o término do documento. Essa sintaxe acima somente serve para comparar strings.


if [[ `ls -la /tmp wc -l` -le 10 ]]; then

fi
Para comparar valores numéricos deve-se usar a sintaxe acima. Notem que a cláusula está entre 2 colchetes e não 1 e o operador é uma expressão literal. Nesse caso acima ele está vendo se no diretório /tmp do linux tem menos ou 10 arquivos. Se quisessem comparar com 10 ou mais seria "-ge". Caso queiram saber todos os operadores, vejam no manual do IF digitando "man if" no linux.

Caso tenham algum IF que esteja com problema ou queiram tirar alguma dúvida... fiquem a vontade...

Início do blog

Esse blog tem duas finalidades:
  1. Mostrar do que um Shell Script é capaz
  2. Achar soluções para problemas dos usuários

Mostrando do que um Shell Script é capaz
O blog mostrará quais os problemas de cotidiano podem ser solucionados com o uso de um shell script.
Essa ferramenta poderosa pode fazer em poucas linhas (e às vezes em uma linha somente) tarefas que com outras ferramentas levariam um tempo enorme de desenvolvimento e/ou tempo para execução.

Achando soluções para problemas dos usuários
Esse blog irá conter várias soluções de problemas encontrados em forums que não tenham sido resolvidos e/ou tenham uma solução não ideal.
Para isso, vou buscar as dúvidas pela net e respondê-las aqui, sempre tentando a solução com uma melhor performance e testadas!
Caso tenha alguma duvida, por favor, poste-a aqui e vou procurar a resposta!

Resolvendo problemas dos usuários....
Se você tem alguma tarefa repetitiva no seu trabalho para coletar informações, tratá-las e/ou trabalhos que envolvem edição de arquivos texto, você poderá postar aqui nesse blog seu problema e vou estudar/postar a solução para ele podendo até disponibilizar um ambiente de testes em um IP disponível na internet.

Vamos começar....
Agora... é só começar a postar dicas... solução de problemas.... e vocês para me ajudar podem fazer perguntas e postar dicas também... tudo é bem vindo...

Em um próximo passo e em breve será criado um fórum para complementar esse blog.