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 :

Un espace dans le path et l'execution devient impossible


Sujet :

Linux

  1. #1
    Membre à l'essai
    Inscrit en
    Décembre 2007
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 11
    Points : 11
    Points
    11
    Par défaut Un espace dans le path et l'execution devient impossible
    Bonjour,

    J'aimerai stocker dans une variable le nom et le chemin d'un programme puis exécuter la commande stockée dans cette variable.
    Le problème étant que le chemin peut comporter des nom de répertoire avec des espaces le tout en csh, exemple:

    Soit test1.csh:
    #######################
    #!/bin/csh
    # test1.csh
    set mavar="echo"
    $mavar titi
    exit
    #######################
    L'exécution de test1.csh fonctionne bien
    >test1
    titi

    Maintenant je copie la commande echo
    >cp /usr/bin/echo /home/roger/mes' 'prog/echo

    Je vérifie que la commande est bien copiée
    >/home/roger/mes' 'prog/echo titi
    titi

    Soit test2.csh:
    #######################
    #!/bin/csh
    set mavar="/home/roger /mes' 'prog/echo"
    $mavar titi
    exit
    #######################
    L'exécution de test2.csh provoque l'erreur suivante:
    >test2
    /home/roger/mes': Command not found.

    Que puis je faire avec des quotes, double quotes ou des guillemets pour prendre en compte l’espace dans le chemin lors de l'exécution?
    Cordialement,
    Jp

  2. #2
    Membre éclairé Avatar de valefor
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    711
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 711
    Points : 790
    Points
    790
    Par défaut
    Mettre un '\' devant (en csh je ne suis pas sûr que ça marche mais bon...).

  3. #3
    Membre à l'essai
    Inscrit en
    Décembre 2007
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 11
    Points : 11
    Points
    11
    Par défaut
    non désolé ça ne marche pas:

    %%%%%%%%%%%%%%%%%%%%%%%%%%
    #!/bin/csh
    # test.csh
    set coucou="echo sqd"
    set coucou="/home/roger/tex/temp/un\ deux/echo"
    $coucou sqd
    exit
    %%%%%%%%%%%%%%%%%%%%%%%%%%
    >test.csh

    /home/roger/tex/temp/un\ command not found

  4. #4
    Membre éclairé Avatar de BlaireauOne
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    492
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2007
    Messages : 492
    Points : 652
    Points
    652
    Par défaut
    En bash, le ? fonctionne.
    Fais un essai

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    set coucou="/home/roger/tex/temp/un?deux/echo"
    Loi de Murphy:
    La Théorie c'est quand ça ne marche pas mais que l'on sait pourquoi.
    La Pratique c'est quand ça marche mais qu'on ne sait pas pourquoi.
    Quand la théorie rejoint la pratique ça ne marche pas et on ne sait pas pourquoi.

  5. #5
    Membre à l'essai
    Inscrit en
    Décembre 2007
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 11
    Points : 11
    Points
    11
    Par défaut
    Merci! En fait il existe plein de possibilités pour executer des commandes contenues dans un variables:
    ##########################
    #!/bin/csh
    set coucou="/home/roger/mes prog/echo"
    set coucou='/home/roger/mes prog/echo'
    set coucou=/home/roger/mes" "prog/echo
    set coucou=/home/roger/mes' 'prog/echo
    set coucou=/home/roger/mes\ prog/echo
    set coucou=/home/roger/mes?prog/echo
    "$coucou" toto
    set coucou="/home/roger/mes\ prog/echo"
    set coucou='/home/roger/mes\ prog/echo'
    eval "$coucou" titi
    exit
    ##########################

    Merci encore pour la nouvelle possibilité

    Jp

Discussions similaires

  1. shellexecute avec espace dans le path
    Par PhilLU dans le forum Langage
    Réponses: 6
    Dernier message: 28/03/2014, 15h00
  2. Réponses: 3
    Dernier message: 19/02/2010, 14h37
  3. Réponses: 1
    Dernier message: 27/06/2008, 08h46
  4. tftp + espace dans le path d'accé
    Par aymanouch dans le forum Réseau
    Réponses: 5
    Dernier message: 04/12/2007, 09h10
  5. [Zope]Execution de script dans un path différent
    Par HexChit dans le forum Zope
    Réponses: 4
    Dernier message: 07/07/2006, 10h28

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