Bonjour,
J'ai une variable $dde_kdialog, construite dans une boucle while.
Mon script est rédigé ainsi
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
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
Mais la fenêtre kdialog qui s'ouvre ne correspond pas du tout à ce que j'attends
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#
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 :
alors, là, j'obtiens exactement ce que je veux
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
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,
Partager