#1 Le 31/03/2012, à 23:05
- coolben
[Résolu][shell script] commande avec repertoire avec des espaces
Bonjour
J'ai fait le script suivant qui me permet de copier automatiquement un ficher sélectionner depuis nautilus :
#!/bin/bash
DEST=~/Selections/
if [ ! -e $DEST ]
then
mkdir "$DEST"
echo "Création du réperoire de destination :" >> tmp.log
fi
cd "$DEST"
echo "copie de $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS vers $DEST" >> tmp.log
cp -r $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS $DEST
Par contre, cela ne marche pas si je suis dans un répertoire ayant un ou plusieurs espace dans le nom.
Dans mon cas, la variable $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS contient :
/Photos/2012/2012 03 31 Eléa fait dodo/DSC05412.JPG
Comment échapper les espaces dans un fichier script.
si je lance cette commande directement depuis un terminal, cela fonctionne :
cp -r '/Photos/2012/2012 03 31 Eléa fait dodo/DSC05413.JPG' ~/Selections/
Mais je n'arrive pas générer cette syntaxe dans un fichier shell script
Dernière modification par coolben (Le 31/03/2012, à 23:56)
http://www.starbusiness.fr : jeux en ligne bientôt Massivement Multi Joueur. Gestion et Wargame dans un univers à la conquête de l'espace ...
Hors ligne
#2 Le 31/03/2012, à 23:15
- Sciensous
Re : [Résolu][shell script] commande avec repertoire avec des espaces
essaye avec des guillemets autour des variables $
antiX 19 et 21 et Ubuntu 20.04 et 22.04
( sous LXDE et gnome-shell )
Hors ligne
#3 Le 31/03/2012, à 23:20
- Bousky
Re : [Résolu][shell script] commande avec repertoire avec des espaces
essaye avec des guillemets autour des variables $
Toute variable dont le contenu n'est pas parfaitement connu doit être entouré de guillemets doubles.
Linux qui plante complètement ? Plus rien ne répond ? On peut toujours le redémarrer proprement :
Alt + SysRq + REISUB (Retourne En Islande Sur Un Bateau !)
Hors ligne
#4 Le 31/03/2012, à 23:55
- coolben
Re : [Résolu][shell script] commande avec repertoire avec des espaces
Merci de vos réponses.
J'avais déjà tenté avec des guillemets mais mon problème était ailleurs.
$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS une sorte de tableau (chaîne séparé par des retours ligne).
#!/bin/bash
DEST=~/Selections/
if [ ! -e $DEST ]
then
mkdir "$DEST"
echo "Création du réperoire de destination :" >> tmp.log
fi
cd "$DEST"
export IFS="
"
NOW=`date +"%y-%m-%d %H:%M:%S"`
for fichier in $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS; do
echo "$NOW copie de $fichier vers $DEST" >> tmp.log
cp -r "$fichier" $DEST
done
http://www.starbusiness.fr : jeux en ligne bientôt Massivement Multi Joueur. Gestion et Wargame dans un univers à la conquête de l'espace ...
Hors ligne
#5 Le 01/04/2012, à 01:47
- Watael
Re : [Résolu][shell script] commande avec repertoire avec des espaces
allez directement à la doc !
ne passez pas par la case Recherche,
ne recevez pas mes félicitations.
Dernière modification par Watael (Le 01/04/2012, à 01:48)
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne