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