Agora creio que entendi o que voce quer. Nao testei o script na minha maquina antes porque estava sem vontade.
Creio que voce ja tem a resposta, o Lucien e o Cleoson ja deram a resposta correta. Abs! [email protected] escreveu: > > > 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] > <mailto:shell-script%40yahoogrupos.com.br>, 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> > > > <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 > > > > > > > > > > > > > > > > > > > > > > > >
