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

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

Re: [shell-script] Verificar diretório e entrar nele.


From: wilson . freitas
Subject: Re: [shell-script] Verificar diretório e entrar nele.
Date: Fri, 11 Jun 2004 14:22:59 -0300 (BRT)
User-agent: SquirrelMail/1.4.2

> Pessoal,
> gostaria de uma ajuda para melhorar esse script. Ele verifica se o
> diretório existe, ele entra e dá um pwd.

Olhando o seu script me lembrei de uma coisa muito usada em linguagens de
programação mas que eu ainda não havia visto no shell. Essa 'coisa' é um
gerador de sequencias muito úteis para iteração e mais elegante do que
vicar utilizando contador quando você já tem um 'range' pre definido, no
seu caso de 1-30.

A forma que eu encontrei de implementar esse contador foi usando o bc da
seguinte maneira:

$ echo "n=1;while(n<=30)n++" | bc
1
2
3
4
5
6
7
8
9
10
...

no seu script poderiamos usa-lo direto em um for:

for i in `echo "n=1;while(n<=30)n++" | bc`; do
  if [ -d "${HOME}/PROC${i}" ];then
    cd "${HOME}/PROC${i}"; pwd
  else
    echo "Diretório não existe: ${HOME}/PROC${i}"
  fi
done

Acho que dessa maneira ficou bem legal. Qualquer coisa estamos ai.

Wilson Freitas
> -------------------------------------
> dir=/home/igor
> cont=1
>
> while [ $cont -le 30 ]
> do
>     if [ -d "$dir"/PROC"$cont" ]
> then
>     cd "$dir"/PROC"$cont"
>     pwd
>     cont=´expr $cont + 1`
> else
>     echo "Diretório não existe"
>         cont=´expr $cont + 1`
>         cd "$dir"/PROC"$cont"
>         pwd
> fi
> done
> --------------------------------
> Os diretórios que quero entrar, estão abaixo do meu HOME(/home/igor) e o
> nome dos diretórios são PROC*(que vão de 1 a 30), mas nem todos existem.
>
> Esse script funciona, mas gostaria de algumas idéias de vocês mais
> experientes e se possivel melhora-lo.
>




reply via email to

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