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 [email protected], Marcus :D <marcus.jab...@...> escreveu > > A tua segunda estrutura de if está errado. > Está assim if-elif, está faltando o else. > > Abs! > > > > jsca...@... 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 > > > > >
