#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