[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Resolvido] Resultado Errado
From: |
address@hidden |
Subject: |
Re: [Resolvido] Resultado Errado |
Date: |
Fri, 24 Jul 2009 00:22:18 -0000 |
User-agent: |
eGroups-EW/0.82 |
Obrigado Lucien Raven funcionou.
O intuito disso é porque estou aprendendo shell script
At,
Jamilson Silva
User Arch Linux
http://www.archlinux-br.org
--- Em address@hidden, Lucien Raven <lucienraven@...> escreveu
>
>
> Olá!
>
> Eu apenas reproduzi o trecho onde fiz a alteração.
> Sim, é importante checar a passagem de parâmetro.
>
> Mas o ponto onde estava o problema era o comando:
>
> if [ -d "$i" ]; then
>
> Se você passa como parâmetro, por exemplo, "/etc". Então a variável $arquivo
> ficará com "/etc" mas ao executar o comando "ls /etc", a variável $i irá
> conter apenas, por exemplo, "passwd" (um arquivo do diretório /etc).
>
> Logo o "if [ -d "passwd" ]; then" não irá encontrar o arquivo no diretório
> onde foi executado!
>
> Então uma saída é incluir o diretório no if:
>
> if [ -d "$arquivo/$i" ]; then
>
> Assim o if fica: "if [ -d "/etc/passwd" ]; then"
>
>
> Expliquei ou compliquei?
>
> []´s
>
> LR :>
>
>
>
> --- Em qui, 23/7/09, jscarmo@... <jscarmo@...> escreveu:
>
> > De: jscarmo@... <jscarmo@...>
> > Assunto: [shell-script] Re: Resultado Errado
> > Para: address@hidden
> > Data: Quinta-feira, 23 de Julho de 2009, 18:16
> > Lucien Raven ele necessita a passagem
> > de parâmetro por causa desse if, verificando se foi passado
> > um parâmetro.
> >
> > if [ $# -ne 1 ]; the
> >
> > At,
> > Jamilson Silva
> >
> > --- Em address@hidden,
> > Lucien Raven <lucienraven@> escreveu
> > >
> > >
> > > De maneira rápida...
> > >
> > > ls $arquivo | while read i
> > > do
> > > if [ -d "$arquivo/$i" ]; then
> > > echo -e "$i \033[01;32m(dir)\033[00m"
> > > elif [ -e "$arquivo/$i" ]; then
> > > echo -e "$i \033[01;33m(arquivo)\033[00m"
> > > fi
> > > done
> > >
> > >
> > > Sem especificar o diretório no if, ele não encontra
> > o arquivo/diretório.
> > >
> > > []´s
> > >
> > >
> > > LR :>
> > >
> > > --- Em qui, 23/7/09, jscarmo@ <jscarmo@>
> > escreveu:
> > >
> > > > De: jscarmo@ <jscarmo@>
> > > > Assunto: [shell-script] Re: Resultado Errado
> > > > Para: address@hidden
> > > > Data: Quinta-feira, 23 de Julho de 2009, 17:39
> > > > Marcus,
> > > >
> > > > Não querendo ser chato demais. Por favor teste
> > esse script
> > > > na máquina
> > > > e verifique que quando executamos ele no
> > diretorio
> > > > corrente.
> > > > Por exemplo:
> > > >
> > > > Se o script estive no /home/jamilson
> > > > ./verificar.sh .
> > > > ./verificar.sh ~
> > > > ./verificar.sh /home/jamilson
> > > >
> > > > ele me retorna o resultado esperado como,
> > > > o que é diretório mostra ao lado a palavra
> > (dir) de
> > > > verde
> > > > e já quando é arquivo me mostra o nome do
> > arquivo com a
> > > > palavra (arquivo) de amarelo.
> > > >
> > > > Já quando passamos:
> > > > ./verificar.sh /
> > > > ./verificar.sh /etc
> > > > ./verificar.sh /tmp
> > > >
> > > > não trás o resultado esperado.
> > > >
> > > >
> > > > e muito obrigado por sua atenção.
> > > >
> > > > --- Em address@hidden,
> > > > Marcus :D <marcus.jabber@> escreveu
> > > > >
> > > > > Se a passoa passar como parametro o caminho
> > completo
> > > > do diretorio
> > > > > /usr/loca/diretorio por exemplo. Nao
> > funciona?
> > > > >
> > > > > jscarmo@ escreveu:
> > > > > >
> > > > > >
> > > > > > Marcus,
> > > > > >
> > > > > > mesmo eu fazendo assim
> > > > > >
> > > > > > if [ -d "$i" ]; then
> > > > > > echo -e "$i \033[01;32m(dir)\033[00m"
> > > > > > else
> > > > > > echo -e "$i
> > \033[01;33m(arquivo)\033[00m"
> > > > > > fi
> > > > > >
> > > > > > não funciona.
> > > > > >
> > > > > > como você pode vê estou querendo
> > trazer os
> > > > diretórios. quando
> > > > > > encontrado um diretório me mostra o
> > nome do
> > > > diretório (dir) e caso
> > > > > > encontre um arquivo me mostre nome do
> > arquivo
> > > > (arquivo).
> > > > > >
> > > > > > senod que isso funciona somente com o
> > diretório
> > > > onde o script esta
> > > > > > sendo executado.
> > > > > >
> > > > > > --- Em address@hidden
> > > >
> > > > > >
> > <mailto:shell-script%40yahoogrupos.com.br>,
> > > > Marcus :D
> > > > > > <marcus.jabber@> escreveu
> > > > > > >
> > > > > > > A tua segunda estrutura de if
> > está errado.
> > > > > > > Está assim if-elif, está
> > faltando o else.
> > > > > > >
> > > > > > > Abs!
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > jscarmo@ escreveu:
> > > > > > > >
> > > > > > > >
> > > > > > > > Caros colegas tem o seguinte
> > script,
> > > > > > > >
> > > > > > > > #1/bin/bash
> > > > > > > >
> > > > > > > > arquivo="$1"
> > > > > > > >
> > > > > > > > if [ $# -ne 1 ]; then
> > > > > > > > echo ""
> > > > > > > > echo "Erro -> uso $0 [nome
> > do
> > > > diretório]"
> > > > > > > > echo ""
> > > > > > > > else
> > > > > > > > ls $arquivo | while read i
> > > > > > > > do
> > > > > > > > if [ -d "$i" ]; then
> > > > > > > > echo -e "$i
> > \033[01;32m(dir)\033[00m"
> > > > > > > > elif [ -e "$i" ]; then
> > > > > > > > echo -e "$i
> > > > \033[01;33m(arquivo)\033[00m"
> > > > > > > > fi
> > > > > > > > done
> > > > > > > > fi
> > > > > > > >
> > > > > > > > o problema é o seguinte:
> > > > > > > >
> > > > > > > > quando passa o nome do
> > diretório
> > > > corrente (o diretório onde o script
> > > > > > > > esta) ele me retorna o
> > resultado
> > > > certo.
> > > > > > > > Mas quando passo outro
> > diretório o
> > > > resultado vem errado.
> > > > > > > >
> > > > > > > > Gostaria de uma ajuda
> > > > > > > >
> > > > > > > >
> > > > > > >
> > > > > >
> > > > > >
> > > > >
> > > >
> > > >
> > > >
> > > >
> > > > ------------------------------------
> > > >
> > > >
> > ---------------------------------------------------------------------
> > > > Esta lista não admite a abordagem de outras
> > liguagens de
> > > > programação, como perl, C etc. Quem insistir em
> > não
> > > > seguir esta regra será moderado sem prévio
> > aviso.
> > > >
> > ---------------------------------------------------------------------
> > > > Sair da lista: address@hidden
> > > >
> > ---------------------------------------------------------------------
> > > > Esta lista é moderada de acordo com o previsto
> > em http://www.listas-discussao.cjb.net
> > > >
> > ---------------------------------------------------------------------
> > > > Servidor Newsgroup da lista: news.gmane.org
> > > > Grupo:
> > gmane.org.user-groups.programming.shell.brazil
> > > >
> > > > Links do Yahoo! Grupos
> > > >
> > > >
> > > >
> > > >
> > >
> > >
> > >
> >
> > ____________________________________________________________________________________
> > > Veja quais são os assuntos do momento no Yahoo!
> > +Buscados
> > > http://br.maisbuscados.yahoo.com
> > >
> >
> >
> >
> >
> > ------------------------------------
> >
> > ---------------------------------------------------------------------
> > Esta lista não admite a abordagem de outras liguagens de
> > programação, como perl, C etc. Quem insistir em não
> > seguir esta regra será moderado sem prévio aviso.
> > ---------------------------------------------------------------------
> > Sair da lista: address@hidden
> > ---------------------------------------------------------------------
> > Esta lista é moderada de acordo com o previsto em
> > http://www.listas-discussao.cjb.net
> > ---------------------------------------------------------------------
> > Servidor Newsgroup da lista: news.gmane.org
> > Grupo: gmane.org.user-groups.programming.shell.brazil
> >
> > Links do Yahoo! Grupos
> >
> >
> >
> >
>
>
>
> ____________________________________________________________________________________
> Veja quais são os assuntos do momento no Yahoo! +Buscados
> http://br.maisbuscados.yahoo.com
>
- Resultado Errado, address@hidden, 2009/07/23
- Re: [shell-script] Resultado Errado, Marcus : D, 2009/07/23
- Re: Resultado Errado, address@hidden, 2009/07/23
- Re: [shell-script] Re: Resultado Errado, Marcus : D, 2009/07/23
- Re: Resultado Errado, address@hidden, 2009/07/23
- Re: [shell-script] Re: Resultado Errado, Lucien Raven, 2009/07/23
- Re: Resultado Errado, address@hidden, 2009/07/23
- Re: [shell-script] Re: Resultado Errado, Lucien Raven, 2009/07/23
- Re: [Resolvido] Resultado Errado,
address@hidden <=
- Re: [shell-script] Re: Resultado Errado, Marcus : D, 2009/07/23
- Re: Resultado Errado, address@hidden, 2009/07/23
- Re: [shell-script] Re: Resultado Errado, Lucien Raven, 2009/07/23
Re: [shell-script] Resultado Errado, Cléoson Barreto, 2009/07/23