Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 02/01/2011, à 11:10

titimoi

Probème avec find et variable coupée dans un script bash

Bonjour,
Mon souci est simple, voici un script que j'ai fait, pour récupérer le nom d'un répertoire de montage de mon appareil photo qui est différent à chaque montage:

#/bin/bash

dir=`find /home/famille/.gvfs/ -name "DCIM"`

Ensuite vous vous en doutez j'utilise cette variable pour faire différentes choses comme copier mes photos etc..

Pour vous donner une idée du nom de ce répertoire, quand je tape ma commande dans un terminal voilà ce que j'ai:

$ find /home/famille/.gvfs/ -name "DCIM"
/home/famille/.gvfs/Montage de gphoto2 sur usb%3A001,024/DCIM

Mon script fonctionne très bien quand je l'exécute directement depuis le terminal, mais je l'ai placé sur le bureau, et si lorsque je double clique dessus je choisi "executer dans un terminal" il ne fonctionne pas et pour cause voilà ce qu'il me donne..

find: "/home/famille/.gvfs/Mo": Aucun fichier ou dossier de ce type
find: "tage de gphoto2 sur usb%3A001,024/DCIM": Aucun fichier ou dossier de ce type

Ma variable a été tronqué une idée du pourquoi du comment ?


pour info voici mon script général :

#/bin/bash

directory=`find /home/famille/.gvfs/ -name "DCIM"`

#dir=/home/famille/Desktop/test\ en\ espace/
list=`IFS=$'\n' && find $directory -name "*.JPG"`




#---Test de connexion de l'appareil
IFS=$'\n' && if [ -e $directory ] ; then

#creation du dossier temporaire
mkdir ~/Desktop/photo-temporaires;
zenity --info --timeout=5 --text "Attends que les Photos se copient et que des fenêtres s'affichent"
#--Copie des fichiers

for i in $list ; do 
cp $i ~/Desktop/photo-temporaires;
done



#ouverture des deux fenêtres
nautilus ~/Desktop/photo-temporaires;
nautilus ~/Documents/Mes\ documents/Photo/

sleep 1;
#--suppression du dossier sur l'appareil photo
zenity --question --text "Tu veux supprimer les photos de l'Appereil ?";
if [ $? == 0 ] ;
then 
rm -r $directory;
fi

else

#---l'appareil photo n'est pas monté
zenity --info --text "L'appareil photo n'est pas connecté ou pas allumé";
fi

Dernière modification par titimoi (Le 02/01/2011, à 15:45)

Hors ligne

#2 Le 02/01/2011, à 12:31

titimoi

Re : Probème avec find et variable coupée dans un script bash

Merci à Levi59 c'est le \n en fait le find ne voit que "n" et le considère comme caractère de séparation, il faut donc faire avant

IFS="
" #avec un vrai retour à la ligne

Je précise que changer l'IFS me permet d'utiliser des répertoires composés d'espaces..
merci encore

EDIT: En fait non ça ne fait que repouser le problème et c'est cp qui ne comprend plus rien après..

Dernière modification par titimoi (Le 02/01/2011, à 15:45)

Hors ligne