Contenu | Rechercher | Menus

Annonce

Le forum rencontre en ce moment quelques soucis de charge, il est possible qu'une erreur soit affichée quand vous postez un message, ne rechargez pas la page au risque de poster une seconde fois votre message

Si vous rencontrez des soucis à rester connecté sur le forum (ou si vous avez perdu votre mot de passe) déconnectez-vous et reconnectez-vous depuis cette page, en cochant la case "Me connecter automatiquement lors de mes prochaines visites".

Déjà un an…

#1 Le 31/03/2012, à 23:05

[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

Re : [Résolu][shell script] commande avec repertoire avec des espaces

essaye avec des guillemets autour des variables $

Hors ligne

#3 Le 31/03/2012, à 23:20

Re : [Résolu][shell script] commande avec repertoire avec des espaces

Sciensous a écrit :

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

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

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)


eval, c'est mal.

Hors ligne

Haut de page ↑