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 :

Lecture d'une variable sans interprétation par le shell


Sujet :

Linux

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 14
    Points : 14
    Points
    14
    Par défaut Lecture d'une variable sans interprétation par le shell
    Bonjour,
    j'ai une variable x="/users/home/dossier"
    que je souhaite utiliser pour créer un fichier zip de la façon suivante :
    gzip -c fichier > ~/users/home/dossier/fichier.gz
    sachant que le nom du fichier zippé est alors "users/home/dossier/fichier.gz".
    Ce fichier sera alors à dans mon répertoire principale et cela me permettra de retrouver facilement où le chemin d'accés au fichier principale qui aura été modifié par la suite.
    Si j'utilise ~/$x/fichier.gz, le shell affiche le contenu de x, mais l'interprete et donc me crée un fichier.gz dans le mauvais dossier.
    Est-il possible de lire la variable x sans que le shell l'interprète comme un chemin ?
    Merci

  2. #2
    Modérateur
    Avatar de ggnore
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 472
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 472
    Points : 4 029
    Points
    4 029
    Par défaut
    j'ai rien compris.

    tu savais qu'il existait des balises code ?
    tu savais que passer à la ligne permettait de rendre un texte plus lisible ?

    J'imagine que la réponse est backslash, mais j'en suis pas sûr.
    Toutes les vertus des hommes se perdent dans l’intérêt comme les fleuves se perdent dans la mer.
    N'oubliez pas de consulter les FAQ Linux et les cours et tutoriels Linux

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 14
    Points : 14
    Points
    14
    Par défaut
    Pour être plus simple, je souhaite utiliser une variable x qui est déclarée de la façon suivante :
    x="/users/home/maison/"

    pour créer un nom de fichier qui s'appellerait :
    /users/home/maison/fichier.gz

    mais quand j'utilise la fonction suivante :
    gzip -c fichier > ${x}fichier.gz

    le shell interprète $x comme un chemin alors que je voudrais que le shell l'interprète comme une chaîne de caractère. [/i]

  4. #4
    Expert confirmé
    Avatar de becket
    Profil pro
    Informaticien multitâches
    Inscrit en
    Février 2005
    Messages
    2 854
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informaticien multitâches
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 2 854
    Points : 5 915
    Points
    5 915
    Par défaut
    Si je comprend bien, tu voudrais un fichier qui s'appelle /users/home/maison/fichier.gz

  5. #5
    Modérateur
    Avatar de ggnore
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 472
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 472
    Points : 4 029
    Points
    4 029
    Par défaut
    j'ai toujours pas compris

    Bon courage
    Toutes les vertus des hommes se perdent dans l’intérêt comme les fleuves se perdent dans la mer.
    N'oubliez pas de consulter les FAQ Linux et les cours et tutoriels Linux

  6. #6
    Membre expérimenté
    Avatar de narmataru
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 548
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 548
    Points : 1 680
    Points
    1 680
    Par défaut
    Citation Envoyé par ajsd0208
    Pour être plus simple, je souhaite utiliser une variable x qui est déclarée de la façon suivante :
    x="/users/home/maison/"

    pour créer un nom de fichier qui s'appellerait :
    /users/home/maison/fichier.gz

    mais quand j'utilise la fonction suivante :
    gzip -c fichier > ${x}fichier.gz

    le shell interprète $x comme un chemin alors que je voudrais que le shell l'interprète comme une chaîne de caractère. [/i]
    la commande 'gzip -c fichier > ${x}fichier.gz' crée bien le fichier /users/home/maison/fichier.tgz non ? je ne vois pas non plus quel est ton problème ?

    Qu'entends-tu par 'interpréter en tant que chemin' et 'interpréter en tant que chaine de caractères' ?
    Ici tout ce que fait le shell est de remplacer $x par la chaine de caractère a laquelle il a été initialisé (ici en l'occurence une chaine de caractère représentant un chemin).
    Ainsi "$ {x}fichier.tgz" = "/usr/home/maison/fichier.tgz"

  7. #7
    Membre régulier Avatar de jula
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    81
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2003
    Messages : 81
    Points : 83
    Points
    83
    Par défaut
    Salut,
    si j'ai bien compris, tu veux créer un fichier dont le nom contient des /
    mais ceci est impossible !! (étant donné que ce caractère sert pour le chemin)
    mais si tu veux garder une trace du chemein dans le nom du fichier que tu crée, tu peux utiliser le caractère _
    cordialement,
    jula.
    Promis, avant j'ai cherché sur Google!

  8. #8
    Membre expérimenté
    Avatar de narmataru
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 548
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 548
    Points : 1 680
    Points
    1 680
    Par défaut
    ha ok tout s'éclairci désolé j'étais bein loin du compte
    Ha ben oui en peut pas mettre de '/' à priori dans un nom de fichier même en mettant \ devant.
    Par contre pourquoi ne pas crééer un fichier contenant le chemin à la racine de l'archive ?
    narma@linimi:/tmp/tst$ ls
    titi toto tutu
    narma@linimi:/tmp/tst$ echo $(pwd) > pwd.pwd
    narma@linimi:/tmp/tst$ ls
    pwd.pwd titi toto tutu
    narma@linimi:/tmp/tst$ tar -czf /tmp/tst.tgz *
    narma@linimi:/tmp/tst$ cd ..
    narma@linimi:/tmp$ mkdir tst2
    narma@linimi:/tmp$ cp tst.tgz tst2/
    narma@linimi:/tmp$ cd tst2/
    narma@linimi:/tmp/tst2$ ls
    tst.tgz
    narma@linimi:/tmp/tst2$ tar -xzf tst.tgz pwd.pwd; cat pwd.pwd; rm pwd.pwd
    /tmp/tst

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 14
    Points : 14
    Points
    14
    Par défaut
    oui c'est ça, je veux mettre des / dans le nom des fichiers.
    Merci pour vos réponses en tout cas et désolée de mal m'exprimer !!!
    MERCI A TOUS

  10. #10
    Modérateur
    Avatar de ggnore
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 472
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 472
    Points : 4 029
    Points
    4 029
    Par défaut
    c'est pas possible de mettre des / dans les noms de fichier.

    Pourquoi veux tu faire ça ?
    Essaye de dévoiler un petit peu le but de ton script parce que là j'ai l'impression de nager dans du cambouis avec tes explications .

    Mieux vaut en dire trop que pas assez quand tu veux être aidé.
    Toutes les vertus des hommes se perdent dans l’intérêt comme les fleuves se perdent dans la mer.
    N'oubliez pas de consulter les FAQ Linux et les cours et tutoriels Linux

  11. #11
    Membre expérimenté
    Avatar de narmataru
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 548
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 548
    Points : 1 680
    Points
    1 680
    Par défaut
    m'est avis que c'est pour savoir ce qui a été sauvegardé dans l'archive

Discussions similaires

  1. Réponses: 1
    Dernier message: 30/04/2008, 00h53
  2. instancier une variable sans appeller de methode?
    Par debutant_linux dans le forum Ruby on Rails
    Réponses: 4
    Dernier message: 05/07/2007, 12h31
  3. Lecture d'une variable
    Par mounir81 dans le forum Langage
    Réponses: 6
    Dernier message: 19/12/2006, 16h32
  4. comment recuperer une variable sans input?
    Par fenneck dans le forum Langage
    Réponses: 20
    Dernier message: 02/04/2006, 20h26
  5. [Tableaux] Lecture d'une variable contenant plusieurs arrays
    Par MightyDucks dans le forum Langage
    Réponses: 10
    Dernier message: 27/03/2006, 13h40

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