shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] Script que lista os executáveis de um diretório


From: Flavio Junior
Subject: Re: [shell-script] Script que lista os executáveis de um diretório
Date: Mon, 28 Aug 2006 09:41:36 -0300

Sei que não é o escopo do seu script, mas o find nao faz isso mto bem ja ?

O seu problema de too many arguments deve ser devido a um arquivo com
" " espaço em branco no nome, isso (sem as aspas citadas pelo Thiago)
faz com que a condicao interprete errado a comparação.

Bom, um exemplo de find para buscar arquivos executaveis seria:

$ find /diretorio/de/busca -perm -111 -type f
Isso busca do diretorio /diretorio/de/busca pra baixo todos os executaveis

Se quiser somente no diretorio atual, adicione a opcao -maxdepth 1 e
variacoes :)

Boa sorte,

Flávio do Carmo Junior aka blk1d

On 8/27/06, Tiago Barcellos Peczenyj <address@hidden> wrote:
coloque as suas variaveis entre "" quando usar o [ ]

e podes usar a opção -a  (and lógico)
if [ -x "$i" -a ! -d "$i" ]; ...

On 8/27/06, Rodrigo <address@hidden> wrote:
> Olá.
>
> Desenvolvi o script que segue abaixo para listar os arquivos
> executáveis de um diretório e o mesmo está apresentando um erro na
> linha 19:
>
> #!/bin/bash
> #
> #       Lista os arquivos executaveis do diretorio atual
> #
>
> ls -l > /tmp/$$
> qtd=`grep -c '^-..x' /tmp/$$`
> if [ $qtd -eq 0 ]
> then
>         echo "Nehum arquivo executavel encontrado neste diretorio."
> elif [ $qtd -ge 2 ]
> then
>         echo "Existem $qtd arquivos executaveis neste diretorio."
> else
>         echo "Existe $qtd arquivo executavel neste diretorio."
> fi
> for i in *
> do
> if [ -x $i ] && [ ! -d $i ] # Esta eh a linha que apresenta erro
> then
>         ls $i
> fi
> done
> rm /tmp/$$
>
> O estranho é que dentro de determinados diretórios ele executa
> perfeitamente, porém em outros ele lista a quantidade de arquivos
> executáveis, lista também os arquivos encontrados e apresenta
> juntamente o erro "line 19: [: too many arguments". Não consegui
> entender o erro e nem porque ele aparece somente em alguns diretórios.
> Gostaria de obter ajuda dos amigos no que for possível.
> Muito obrigado.
>
> Rodrigo
>
>
>
>
>
>
> ---------------------------------------------------------------------
> 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
>
>
>
>
>
>
>
>


--
Tiago B Peczenyj
Linux User #405772

# cd /pub
# more beer


---------------------------------------------------------------------
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










reply via email to

[Prev in Thread] Current Thread [Next in Thread]