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 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

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

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