IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Linux Discussion :

[Shell] Récupérer paramètre dans une seule variable


Sujet :

Linux

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    110
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 110
    Par défaut [Shell] Récupérer paramètre dans une seule variable
    Bonjour ! J'essai de faire un script qui ressemble a ça

    #! /bin/sh
    #Se place dans le repertoire musiques
    cd /HD/media/Musiques/
    #Créer une archive avec le repertoire rentré en parametre
    zip -r /home/matt/Archive.zip $pathdir

    Voilà, mais comme les noms des repertoires contienent des espace et - il me les met en plusieur parametre!

    Alors comment faire? merci

  2. #2
    Membre Expert Avatar de alain.couthures
    Profil pro
    Gérant
    Inscrit en
    Avril 2007
    Messages
    902
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Gérant

    Informations forums :
    Inscription : Avril 2007
    Messages : 902
    Par défaut
    Je n'ai pas un Linux sous la main pour vérifier mais il suffit d'encadrer $pathdir avec des " : essayez "$pathdir" ou sinon \"$pathdir\"

  3. #3
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 833
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 833
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par alain.couthures Voir le message
    ...ou sinon \"$pathdir\"
    Non non. "$pathdir" est parfait !!!
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  4. #4
    Membre éclairé

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Août 2007
    Messages
    509
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Août 2007
    Messages : 509
    Par défaut
    Si tu changeais l'IFS? Si tu mettais un caractère autre que l'espace et -?

  5. #5
    Membre averti
    Inscrit en
    Décembre 2007
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 16
    Par défaut
    Bonjour,

    Si $pathdir est passé en paramétre au script, il est censé être protégé contre les espaces. Je n'ai jamais vu de commande accepter les noms de fichier / répertoire avec des espaces sans protection.

    Plusieurs possibilités (exemple avec le répertoire "toto titi":
    - utilisation des guillemets : #MaCommande "toto titi"
    - utilisation des échappements : #MaCommande toto\ titi

    Si tu es sûr qu'il n'y a qu'un paramétre, alors c'est possible de gérer mais ce n'est pas propre (à mon avis, après c'est toi qui vois :p).

    $* contient tous les paramétres. Il suffit donc, comme indiqué dans les messages précédents, de le protéger avec des guillemets dans le code.

    Bref, cela fonctionnera très bien :

    #! /bin/sh
    cd /HD/media/Musiques/
    zip -r /home/matt/Archive.zip "$*"

    Gari.

Discussions similaires

  1. Réponses: 5
    Dernier message: 09/02/2011, 14h33
  2. [MySQL] resultat mysql dans une seul variable (sorte de regroupement de plusieur resultat) ::
    Par rezareza dans le forum PHP & Base de données
    Réponses: 12
    Dernier message: 06/02/2009, 14h49
  3. Réponses: 9
    Dernier message: 10/02/2008, 17h14
  4. Réponses: 6
    Dernier message: 27/09/2006, 20h27
  5. Réponses: 2
    Dernier message: 17/08/2005, 14h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo