Bonjour,

J'ai une variable $dde_kdialog, construite dans une boucle while.
Mon script est rédigé ainsi
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
#!/bin/sh
var="établissement"
lignes=$(grep -n -o -w "$var" temp)
echo "$lignes" > temp1
uniq -c temp1 > temp2
while read line
	do 
	line=${line%:*}
	ligne=${line#* } # numéro de ligne
	nb=${line% *} # nombre d'occurences dans la ligne
 		for (( j = 1 ; j <= $nb ; j++ ))
 		do
		nb_total=$[$nb_total+1] # nombre total d'occurences déjà traitées
 		dde_kdialog="$dde_kdialog $nb_total \"ligne $ligne - $j\" off"
 		done
	done < temp2
 
echo "#$dde_kdialog#"
kdialog --checklist "il y a $nb_total occurences de $var<br>Choisir celle qu'il faut retenir :" $dde_kdialog
Si je lance le script dans une console, j'obtiens cette réponse
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
[sam. 07 janvier (~) user] test                                                  
# 1 "ligne 13 - 1" off 2 "ligne 18 - 1" off 3 "ligne 20 - 1" off 4 "ligne 20 - 2" off 5 "ligne 20 - 3" off 6 "ligne 20 - 4" off 7 "ligne 21 - 1" off 8 "ligne 21 - 2" off 9 "ligne 23 - 1" off 10 "ligne 23 - 2" off 11 "ligne 23 - 3" off 12 "ligne 25 - 1" off 13 "ligne 25 - 2" off 14 "ligne 25 - 3" off 15 "ligne 25 - 4" off#
Mais la fenêtre kdialog qui s'ouvre ne correspond pas du tout à ce que j'attends

Par contre si je saisis la ligne qui s'affiche dans ma console dans mon presse-papier (entre les deux #), et que je la colle directement dans la console après avoir saisi le début de la commande :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
[sam. 07 janvier (~) user] kdialog --checklist "il y a $nb_total occurences de $var<br>Choisir celle qu'il faut retenir :" 1 "ligne 13 - 1" off 2 "ligne 18 - 1" off 3 "ligne 20 - 1" off 4 "ligne 20 - 2" off 5 "ligne 20 - 3" off 6 "ligne 20 - 4" off 7 "ligne 21 - 1" off 8 "ligne 21 - 2" off 9 "ligne 23 - 1" off 10 "ligne 23 - 2" off 11 "ligne 23 - 3" off 12 "ligne 25 - 1" off 13 "ligne 25 - 2" off 14 "ligne 25 - 3" off 15 "ligne 25 - 4" off
alors, là, j'obtiens exactement ce que je veux


Donc ma variable est bien bâtie, non ?
NB dans mon script, j'ai essayé de mettre la variable entre guillemets "$dde_kdialot") et alors kdialog ne s'ouvre même pas. Si le la mets entre deux ´ (´$dde_kdialog´), j'ai le même résultat que sans rien (cf. image 1).

Que faire ?

Cordialement,