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