Salut à tous.
J'ai envi de me créer un script de compression/décompression grâce au bash et zenity.
Pour l'instant je me suis limité au format 7-Zip étant donné que j'arrive pas à avancer, c'est pourquoi je vous demande votre aide.

En gros pour l'instant ça donne ça :

Au lancement.


Ce qu'on veut compresser.


Répertoire de destination.


Nom de l'archive.


Le script :
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
#!/bin/sh
 
tetsuAction=`zenity --list --title="Que voulez-vous faire ?" --column="Action" "Compression" "Decompression"`
 
if [ "$tetsuAction" = "Compression" ]; then
 
    tetsuSrc=`zenity --file-selection --multiple --separator=" "`
    tetsuDest=`zenity --file-selection --directory`
    tetsuFname=`zenity --entry --text="Entrez un nom pour l'archive"`
 
    7z a -mx=9 -m0=lzma2 ${tetsuDest}/${tetsuFname} ${tetsuSrc}
    #roxterm -e 7z a -mx=9 -m0=lzma2 ${tetsuDest}/${tetsuFname} ${tetsuSrc}
 
elif [ "$tetsuAction" = "Decompression" ]; then
    zenity --info --text="Decomp"
else
    exit
fi
Maintenant mon problème :

Ça fonctionne seulement si je sélectionne 1 seul fichier et il ne doit y avoir d'espace ni sur le nom, ni dans les répertoires.
Je pense que c'est une histoire de guillemet mais tout ce que j'ai pu tester jusqu'ici ne marche pas.

Pour info voici à quoi ressemble la ligne de commande pour compresser avec 7-Zip :

1 fichier :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
7z a -mx=9 -m0=lzma2 "/home/user/destination.7z" "/home/user/fichier_a_compresser.ext"
Plusieurs fichiers :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
7z a -mx=9 -m0=lzma2 "/home/user/destination.7z" "/home/user/fichier_a_compresser1.ext" "/home/user/fichier_a_compresser2.ext" "/home/user/fichier_a_compresser3.ext"
Merci par avance.