URL: https://linuxfr.org/forums/programmation-shell/posts/help-script-bash-qui-trouve-les-d%C3%A9pendances Title: help : script bash qui trouve les dépendances Authors: HoloAddict Date: 2005年06月14日T12:10:38+02:00 Tags: Score: 0 Je voudrais connaître les dépendances de mon programmes (pour en faire un deb facilement). Et n'ayant rien trouver pour cela, j'ai décider de faire un petit script qui m'afficherai les librairies nécessaires. Or, je voudrais que les libs qui sont demander par d'autres libs ne soit pas affiché. (Ex : grace au script je trouve libqt3c102-mt et libx11-6, mais comme libx11-6 est nécessaire pour libqt3c102-mt, il ne doit pas s'afficher) Mais je fais face à de nombreux problèmes : notamment à cause de deux variables (n2 et dependsLibs) qui perdent leur valeurs en sortant d'une boucle. Si une âme charitable pourrait m'aider, ca ne serait pas de refus (^_^) Merci d'avance. #!/bin/bash libs[0]="" dependsLibs[0]="" n=0 n2=0 preexistant=0 # On lit les .so necessaire à l'exe un par un ldd 1ドル | awk '{ print 3ドル }' | while read so do # On trouve le paquet de chaque .so et le rajoute au tableau libs[n]=`dpkg -S $so | awk -F: '{ print 1ドル }'` ############Expérimentale################# ###########(ne marche pas)################ if [ $n = 0 ] then apt-cache depends ${libs[0]} | while read lib do dependsLibs[n2]=`echo $lib | awk '{ print 2ドル }'` let "n2 += 1" # ici n2 augmente logiquement done fi ########################################## ########################################## # ici, n2 == 0, pourquoi ???? # On cherche si la lib a déjà été trouver, si oui on ne la rajoute pas for (( tmp = 0; tmp < n; tmp++ )) do if [ "${libs[n]}" = "${libs[tmp]}" ] then let "preexistant = 1" fi done if [ $preexistant = 0 ] then echo ${libs[n]} fi # On remet preexistant sur "non" et change dans le tableau let "preexistant = 0" let "n += 1" done