Marcus, Não querendo ser chato demais. Por favor teste esse script na máquina e verifique que quando executamos ele no diretorio corrente. Por exemplo:
Se o script estive no /home/jamilson ./verificar.sh . ./verificar.sh ~ ./verificar.sh /home/jamilson ele me retorna o resultado esperado como, o que é diretório mostra ao lado a palavra (dir) de verde e já quando é arquivo me mostra o nome do arquivo com a palavra (arquivo) de amarelo. Já quando passamos: ./verificar.sh / ./verificar.sh /etc ./verificar.sh /tmp não trás o resultado esperado. e muito obrigado por sua atenção. --- Em [email protected], Marcus :D <marcus.jab...@...> escreveu > > Se a passoa passar como parametro o caminho completo do diretorio > /usr/loca/diretorio por exemplo. Nao funciona? > > jsca...@... escreveu: > > > > > > 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] > > <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 > > > > > > > > > > > > > > > >
