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...
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...
Marcadores:
arquivo com espaço,
cat,
for,
shell script
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...
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
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:
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.
- Mostrar do que um Shell Script é capaz
- 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.
Assinar:
Postagens (Atom)