The UNIX and Linux Forums  
Olá e boas-vindas de Estados Unidos para o UNIX e Linux Forum! Obrigado por visitar e fazer parte da nossa comunidade global.

Go Back   O UNIX e Linux Forum > Top Fóruns > UNIX para Dummies Perguntas & Respostas
.
google unix.com



UNIX para Dummies Perguntas & Respostas Se não tiver certeza de onde se pode postar uma pergunta Unix ou Linux, postá-lo aqui. Todos os UNIX e Linux novatos bem vindos!

Mais UNIX e Linux Fórum Tópicos Você pode achar Helpfull
Fio Thread Starter Fórum Respostas Última postagem
awk problema em função Int () qa.bingo Programação Shell Script e 2 01-02-2009 09:52
Recursão joshighanshyam Alto Nível de programação 5 12-03-2008 12:15
Ajuda Ajuda Ajuda em recursividade Murtaza Programação Shell Script e 6 03-29-2007 11:26
Problema com recursão em subdiretórios scotty_123 Programação Shell Script e 5 03-11-2007 05:51
recursão gsjf Programação Shell Script e 1 08-26-2002 01:22

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
Linkback Thread Tools Pesquisar este Thread Rate Thread Display Modes
  #1 (permalink)  
Old 03-12-2009
nuvpal nuvpal is offline
Usuário
  
 

Join Date: Mar 2009
Posts: 7
Função recursão Shift Problema

Oi, eu estou tentando criar um script que irá exibir o conteúdo dos diretórios usuários, mas estou confusa sobre como incorporar a mudança corretamente.

O problema que estou ficando com o meu script é que ele pensou que o primeiro casal de diretórios, mas em seguida, retorna um erro que ele perde o primeiro diretório quando continuando a pesquisa a outros diretórios (Espero que faz sentido?)
EDIT: Peço desculpa, foi que o velho problema, agora o problema é o caminho a ser procurado acrescenta os diretórios de modo errado, dirige-se caminhos que não existem

Aqui está o meu código, qualquer ajuda seria muito apreciada.

Código:
direc=~
list=$(ls -l $direc | egrep '^d' | cut -d" " -f8)
function printList() {
        for line in $*
        do
                echo $line
                list=$(ls -l $direc/$1 | egrep '^d' | cut -d" " -f8)
                direc=$direc/$1
                shift
                printList $list
 
        done
}
printList $list
EDIT2: eu tenho também tentou suprimir o erro retornado pelo ls para dev null, editando a linha dentro da função:
Código:
                list=$(ls -l $direc/$1 | egrep '^d' | cut -d" " -f8 2>/dev/null)
e também
Código:
                list=$(ls -l $direc/$1 | egrep '^d' | cut -d" " -f8) 2>/dev/null
Nem trabalho, mas, tanto retornar a mesma saída, por outras palavras, eles ainda não são suppressesing o erro padrão.

Última edição por nuvpal; em 03/12/2009 06:22..
  #2 (permalink)  
Old 03-12-2009
radoulov's Avatar
radoulov radoulov is offline Forum Staff  
viciado
  
 

Join Date: Jan 2007
Localização: Варна, България / Milano, Italia
Mensagens: 2.875
O que há de errado com:

Código:
ls ~username
... ou estou perdendo algo?

Poderia postar um exemplo da saída desejada?
  #3 (permalink)  
Old 03-12-2009
nuvpal nuvpal is offline
Usuário
  
 

Join Date: Mar 2009
Posts: 7
Citação:
Originally Posted by radoulov View Post
O que há de errado com:

Código:
ls ~username
... ou estou perdendo algo?

Poderia postar um exemplo da saída desejada?
Não tenho certeza que ls ~ usuário faria, se eu tentar isso, ele exibe o mesmo que um normal comando ls ...

Basicamente o que quero fazer é o meu script para exibir uma representação visual do diretório especificado e todos os seus sub-diretórios (como a árvore comando).

Eu tenho gerido a suprimir o original ls erro adicionando o 2> / dev / null para a função que chame a si próprio parece funcionar ok agora:
Código:
#!/bin/bash
direc=~
seperator=....
list=$(ls -l $direc | egrep '^d' | cut -d" " -f8)
function printList() {
        for line in $*
        do
                echo $line
                list=$(ls -l $direc/$1 | egrep '^d' | cut -d" " -f8 )
                direc=$direc/$1
                shift
                printList $list 2>/dev/null

        done
}
printList $list 2>/dev/null
Mas o meu script ainda não funciona corretamente, ele fará a varredura através do primeiro diretório encontrado e apresentá-lo juntamente com todos os subdiretórios, mas quando se trata de loop de volta para o diretório original e exibir o próximo diretório que não irá escanear e mostrar através de os subdiretórios do mesmo. (Estou encontrando é bastante difícil de explicar, mas eu espero que você possa entender)

dada a saída será algo como: (onde o. eo número representa os diretórios e subdiretórios)
direc1
direc1.1
direc1.1.1
direc1.1.2
direc1.2
direc1.2.1
direc2

e então ela pára, quando o que eu quero isso para mostrar uma saída como:
direc1
direc1.1
direc1.1.1
direc1.1.2
direc1.2
direc1.2.1
direc2
direc2.1
direc2.1.1
direc2.2
direc2.2.1
direc3
direc3.1
direc3.1.1
direc3.2
direc4
etc ...

Última edição por nuvpal; em 03/12/2009 08:26..
  #4 (permalink)  
Old 03-12-2009
radoulov's Avatar
radoulov radoulov is offline Forum Staff  
viciado
  
 

Join Date: Jan 2007
Localização: Варна, България / Milano, Italia
Mensagens: 2.875
Eu ainda não consigo entender: o exemplo dado direc1.1, 1 é o nome do subdiretório ou algum tipo de auto-incrementado id?
Vocês querem produzir uma saída similar a esta um:

Código:
$ find -type d
.
./dir1
./dir1/dir11
./dir1/dir11/dir111
./dir1/dir12
./dir1/dir12/dir121
./dir2
  #5 (permalink)  
Old 03-12-2009
nuvpal nuvpal is offline
Usuário
  
 

Join Date: Mar 2009
Posts: 7
Citação:
Originally Posted by radoulov View Post
Eu ainda não consigo entender: o exemplo dado direc1.1, 1 é o nome do subdiretório ou algum tipo de auto-incrementado id?
Vocês querem produzir uma saída similar a esta um:

Código:
$ find -type d
.
./dir1
./dir1/dir11
./dir1/dir11/dir111
./dir1/dir12
./dir1/dir12/dir121
./dir2
Kind of ... Basta colocar, o que eu gostaria de fazer é criar um script que mostra uma saída similar à árvore comando unix
Código:
tree ~
mas apenas listar directórios e subdirectórios, não arquivos.

Espero que seja mais claro. E eu aprecio muito a vossa ajuda e tempo.
  #6 (permalink)  
Old 03-12-2009
radoulov's Avatar
radoulov radoulov is offline Forum Staff  
viciado
  
 

Join Date: Jan 2007
Localização: Варна, България / Milano, Italia
Mensagens: 2.875
Você experimentar:

Código:
tree -d ~
ou (como já foi dito):

Código:
find -type d
  #7 (permalink)  
Old 03-12-2009
nuvpal nuvpal is offline
Usuário
  
 

Join Date: Mar 2009
Posts: 7
Citação:
Originally Posted by radoulov View Post
Código:
$ find -type d
.
./dir1
./dir1/dir11
./dir1/dir11/dir111
./dir1/dir12
./dir1/dir12/dir121
./dir2
para melhor explicar o meu direc1, direc1.1, blá, blá ...
direc1 seria a mãe diretório, direc1.1 e direção 1/2 seria sub-diretórios de direc1, e direc1.1.1 seria um sub-diretório do subdiretório direc1.1

Espero thats um pouco mais clara
Closed Thread

Marcadores

Thread Tools Pesquisar este Thread
Pesquisar este Thread:

Pesquisa Avançada
Display Modes Esta taxa Thread
Esta taxa Thread:

Destacamento Regimento
Você não pode postar novas threads
Você não pode postar respostas
Você não pode postar anexos
Você não pode editar suas postagens

BB code é Ligado
Smilies são Ligado
[IMG] código é Ligado
Código HTML é Desligado
Trackbacks são Ligado
Pingbacks são Ligado
Refbacks são Ligado




Todos os horários são GMT -4. A hora é agora 01:14.


Powered by: vBulletinCopyright © 2000 - 2006, Jelsoft Enterprises Limited. Língua Traduções Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
O UNIX e Linux Fóruns Content Copyright © 1993-2009. Todos os Direitos Reserved.Ad Gestão por RedTyger

Content Relevant URLs por vBSEO 3.2.0