On Thu, 14 Mar 2002, Romuald DELAVERGNE wrote:
> #!/bin/sh > > maxniv=0 > niveau=0 > tab="" > > ndep() { > echo "${tab}$1 ($niveau)" > tab=" $tab" > for package in `apt-cache depends $1 | awk '/ Depends: / {print $2}'`; > do > [ "$package" = "$1" ] && continue > niveau=$((niveau+1)) > [ $niveau -gt $maxniv ] && maxniv=$niveau > ndep $package > done > tab=`echo "$tab" | cut -c 3-` > niveau=$((niveau-1)) > } > > ndep $1 > echo -e "\nn($1)=${maxniv}" > exit 0 > > > -- > To UNSUBSCRIBE, email to [EMAIL PROTECTED] > with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED] > Voici la version modifiee, il n'est pas trop parfait, car il y a des petites redondances, mais donne malgre tout une bonne idee :-) Il n'est evidemment pas performant, a cause du for, qui continue de verifier meme s'il a deja trouve. Je trouve cela laid de mettre un break dans un for.. je vous laisse le loisir d'utiliser le while ! ----------------- #!/bin/sh ok=1 pack="" maxniv=0 niveau=0 tab="" ndep() { echo "${tab}$1 ($niveau)" tab=" $tab" for package in `apt-cache depends $1 | awk '/ Depends: / {print $2}'`; do for i in $pack do if [ "$i" == "$package" ]; then ok=0 fi done pack="$pack ${package}" [ "$package" = "$1" ] && continue niveau=$((niveau+1)) [ $niveau -gt $maxniv ] && maxniv=$niveau if [ $ok == 1 ]; then ndep $package fi ok=1 done tab=`echo "$tab" | cut -c 3-` niveau=$((niveau-1)) } ndep $1 echo -e "\nn($1)=${maxniv}" exit 0 ----------------------------------------------