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 :

Affecter le résultat d'un CAT à une variable


Sujet :

Linux

  1. #1
    Membre régulier
    Homme Profil pro
    Ingénieur d'études en développements techniques
    Inscrit en
    Novembre 2005
    Messages
    244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur d'études en développements techniques
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2005
    Messages : 244
    Points : 117
    Points
    117
    Par défaut Affecter le résultat d'un CAT à une variable
    Bonjour,
    Je travaille sur un script pour sécuriser un traitement PHP planifié sur mon serveur.
    Pour cela je dois exécuter une page PHP via WGET, pour sécuriser un peu tout ça, je génère un nom aléatoire de la page PHP à lancer et je la stocke quelque part dans mon arborescence, je stocke le nouveau nom afin de le récupérer pour le prochain traitement.

    Mon problème est que je n'arrive pas affecter le résultat de mon CAT qui contient le dernier nom de fichier généré à une variable qui me servira pour renommer mon prochain fichier, voici ce que j'ai pour l'instant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    if [ -s /root/scripts/file.txt ]; then
        nom=`cat /root/scripts/file.txt`
    else
        nom=nom_par_defaut
    fi
    mv /chemin_vers_fichier/nom /chemin_vers_fichier/nouveau_nom
    Le cat de "/root/scripts/file.txt" donne le résultat suivant s'il existe :
    XYZ123

  2. #2
    Membre averti Avatar de fransoo
    Inscrit en
    Novembre 2009
    Messages
    209
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 209
    Points : 300
    Points
    300
    Par défaut
    Un peu de diagnostic :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    (...)
    echo "nom = '$nom'"
    # mv /chemin_vers_fichier/nom /chemin_vers_fichier/nouveau_nom

  3. #3
    Membre régulier
    Homme Profil pro
    Ingénieur d'études en développements techniques
    Inscrit en
    Novembre 2005
    Messages
    244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur d'études en développements techniques
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2005
    Messages : 244
    Points : 117
    Points
    117
    Par défaut Pas compris
    Bonjour fransoo,
    Je n'ai pas bien compris ta réponse

  4. #4
    Membre régulier
    Homme Profil pro
    Ingénieur d'études en développements techniques
    Inscrit en
    Novembre 2005
    Messages
    244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur d'études en développements techniques
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2005
    Messages : 244
    Points : 117
    Points
    117
    Par défaut
    UP

  5. #5
    Membre averti Avatar de fransoo
    Inscrit en
    Novembre 2009
    Messages
    209
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 209
    Points : 300
    Points
    300
    Par défaut
    Citation Envoyé par bpdelavega Voir le message
    Bonjour fransoo,
    Je n'ai pas bien compris ta réponse
    Je ne suis pas sûr d'avoir bien compris la question. Il s'agit juste de voir ce que contient la variable $nom.

  6. #6
    Membre régulier
    Homme Profil pro
    Ingénieur d'études en développements techniques
    Inscrit en
    Novembre 2005
    Messages
    244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur d'études en développements techniques
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2005
    Messages : 244
    Points : 117
    Points
    117
    Par défaut
    Non, il s'agit de récupérer le résultat du "CAT" pour l'affecter à une variable :
    le CAT donne par exemple 'ABCD123', je veux pouvoir affecter cela à ma variable $nom

  7. #7
    Membre averti Avatar de fransoo
    Inscrit en
    Novembre 2009
    Messages
    209
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 209
    Points : 300
    Points
    300
    Par défaut
    Citation Envoyé par bpdelavega Voir le message
    Non, il s'agit de récupérer le résultat du "CAT" pour l'affecter à une variable :
    le CAT donne par exemple 'ABCD123', je veux pouvoir affecter cela à ma variable $nom
    C'est ce que fait la commande de ton script
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    nom=`cat /root/scripts/file.txt`
    Qu'il est préférable d'écrire (pour plus de lisibilité et la possibilité d'imbrication)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    nom=$(cat /root/scripts/file.txt)

  8. #8
    Membre régulier
    Homme Profil pro
    Ingénieur d'études en développements techniques
    Inscrit en
    Novembre 2005
    Messages
    244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur d'études en développements techniques
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2005
    Messages : 244
    Points : 117
    Points
    117
    Par défaut Impeccable
    Merci Fransoo, ça fonctionne nickel, mon erreur venait de là ma commande
    ne fonctionnait pas en réalité, j'ai remplacé par ta syntaxe et cela a fonctionné de suite, merci pour tout

  9. #9
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 721
    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 721
    Points : 31 044
    Points
    31 044
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par fransoo Voir le message
    Qu'il est préférable d'écrire (pour plus de lisibilité et la possibilité d'imbrication)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    nom=$(cat /root/scripts/file.txt)
    On peut aussi imbriquer avec `...`. Toutefois je suis d'accord que la syntaxe $(...) est plus lisible.

    Citation Envoyé par bpdelavega Voir le message
    Merci Fransoo, ça fonctionne nickel, mon erreur venait de là ma commande
    ne fonctionnait pas en réalité, j'ai remplacé par ta syntaxe et cela a fonctionné de suite, merci pour tout
    Les deux syntaxes nom=`cat ...` et nom=$(cat ...) sont absolument équivalentes (sauf en ce qui concerne la lisibilité). Si ça ne fonctionnait pas avant mais que ça fonctionne maintenant, c'est que t'as modifié autre chose. Peut-être par exemple la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mv /chemin_vers_fichier/nom /chemin_vers_fichier/nouveau_nom
    est-elle devenue
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mv /chemin_vers_fichier/$nom /chemin_vers_fichier/nouveau_nom
    ...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Affectation du résultat d'un echo à une variable
    Par saladin443 dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 17/05/2013, 12h34
  2. Réponses: 1
    Dernier message: 14/01/2009, 16h58
  3. Affecter la valeur d'un champs à une variable
    Par gentoo dans le forum Access
    Réponses: 2
    Dernier message: 22/02/2007, 15h45
  4. Affecter valeur d'un champ dans une variable
    Par Sly2k dans le forum Access
    Réponses: 3
    Dernier message: 17/08/2006, 09h43
  5. affecter le résultat de chaque colonne à une variable
    Par zut94 dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 21/11/2005, 17h35

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