Bonjour,

je tombe sur un os et ne sais pas comment le ronger...

J'ai besoin de récupérer les données de proc/partitions toutes les secondes et ça, je sais faire, mais c'est pour les comparer que je coince.

J'ai vu/lu plein de tutos, de posts, etc., et je me plante lamentablement :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
IFS='\n'
listenow=$(cat /proc/partitions | grep sd) 
listeprv="$listenow"
declare -a newdevice
 
for lignen in $listenow; do 
  for lignep in $listeprv; do 
    outnow=$(echo $lignen | awk '{print $4}');
    echo $outnow
    outprv=$(echo $lignep | awk '{print $4}'); 
    echo $outprv
    if [ "$outprv" != "$outnow" ]; then echo "outnow = " ; echo "$outnow"; newdevice+=("$outnow"); fi 
  done
done
Je n'ai pas tout mis, juste ce qui coince. Et voilà ce que j'obtiens :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
sda
sda1
sda2
sdb
sdb1
sdb2
sdc
sdc1
sdc2
sdd
sdd1
<espace rajouté par moi pour séparer *ici* la sortie outnow de la sortie outprv
sda
sda1
sda2
sdb
sdb1
sdb2
sdc
sdc1
sdc2
outnow =
Donc en gros je ne peux pas comparer les lignes de l'array listenow avec les lignes de l'array listeprv.

Je m'attendais à avoir
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
sda #venant de listenow
sda #venant de listeprv
sda1 #id.
sda1 #id.
#etc., jusqu'à 
sdc2
sdc2
sdd
sdd1
C'est ces 2 dernières lignes qui m'intéressent (insertion d'une clé usb) et y a pas moyen.

J'ai même tenté de rajouter des echo pour voir où ça foire, comme ça :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
for lignen in ${listenow[@]}; do
  echo $lignen 
  for lignep in ${listeprv[@]}; do 
    echo $lignep
mais ça ne m'avance à rien, voilà la sortie :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
   8        0  234431064 sda
   8        1  204800000 sda1
   8        2   29627488 sda2
   8       16 1953514584 sdb
   8       17 1748713472 sdb1
   8       18  204800000 sdb2
   8       32 1953514584 sdc
   8       33 1748713472 sdc1
   8       34  204800000 sdc2
   8       48   30310400 sdd
   8       49   30310160 sdd1
# dessus la listenow, dessous la listeprv, comme si les boucles n'étaient pas imbriquées, :koi:
   8        0  234431064 sda
   8        1  204800000 sda1
   8        2   29627488 sda2
   8       16 1953514584 sdb
   8       17 1748713472 sdb1
   8       18  204800000 sdb2
   8       32 1953514584 sdc
   8       33 1748713472 sdc1
   8       34  204800000 sdc2
J'ai raté une marche ?
Merci,