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

Shell et commandes GNU Discussion :

concatenation de variables sous sh


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2008
    Messages
    41
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2008
    Messages : 41
    Par défaut concatenation de variables sous sh
    Bonjour,
    Je ne connais pas la procedure à suivre pour concatener des variables sous sh, je n'ai rien trouvé sur ce forum, voilà pourquoi je demande votre aide.

    Je souhaite concatener une variable passee en parametre, avec un nom de fichier, mais je ne connais pas la syntaxe, voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
    #Liste des variables
    # $1 => path absolu du shell avec nom du shell
    # $2 => choix du traitement des vignettes :1 non LR :2uniqement LR
    # $3 => choix du serveur (PROD PREPROD etc...)
    # $4 => traiter egalement les vignettes uploadees manuellement
    # $5 => destinataire du mail de rapport
    # $6 => path de la page PHP qui va lancer le traitement
    # $7 => path du repertoire du shell sans le nom du shell
     
    # variable : fichier de rapport
    FIC = {$7}/fin_traitement.txt
    # On se positionne dans le repertoire ou le script PHP va etre execute
    cd $6
     
    # On initialise le rapport avec la date courante
    /bin/date > $FIC
     
    # On lance le traitement en appelant la page PHP et en lui transmettant les paramettres necessaires
    # En recuperant la sortie dans le fichier servant de corps au mail de rapport
    /usr/bin/php5 genere_vignette.php $2 $3 $4 $5 >> $FIC &
     
    #On envoi un mail que si on a des erreurs
    if [ "x`cat $FIC | wc -l`" != "x2" ];
       then  cat $FIC | /usr/bin/mail -s "rapport traitement" "$5" ;
    fi
    mais $FIC est null. D'avance merci pour votre aide.

  2. #2
    Expert confirmé Avatar de frp31
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    5 196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2006
    Messages : 5 196
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    varcon=$(echo $var1nomdufichier)

  3. #3
    Membre averti
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2008
    Messages
    41
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2008
    Messages : 41
    Par défaut
    Bonjour frp31,
    je viens d'essayer votre solution en faisant ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
    #Liste des variables
    # $1 => path absolu du shell avec nom du shell
    # $2 => choix du traitement des vignettes :1 non LR :2uniqement LR
    # $3 => choix du serveur (LLS2 PREPROD etc...)
    # $4 => traiter egalement les vignettes uploadees manuellement
    # $5 => destinataire du mail de rapport
    # $6 => path de la page PHP qui va lancer le traitement
    # $7 => path du repertoire du shell sans le nom du shell
     
    # variable : fichier de rapport
    fichier = $($7fin_traitement.txt)
    # On se positionne dans le repertoire ou le script PHP va etre execute
    cd $6
     
    # On initialise le rapport avec la date courante
    /bin/date > $fichier
     
    # On lance le traitement en appelant la page PHP et en lui transmettant les paramettres necessaires
    # En recuperant la sortie dans le fichier servant de corps au mail de rapport
    /usr/bin/php5 genere_vignette_process_lr.php $2 $3 $4 $5 >> $fichier &
     
    #On envoi un mail que si on a des erreurs
    if [ "x`cat $fichier | wc -l`" != "x2" ];
            then  cat $fichier | /usr/bin/mail -s "rapport traitement" "$5" ;
    fi
    Mais j'ai toujours le même probleme.

  4. #4
    Membre chevronné
    Avatar de argoet
    Inscrit en
    Mai 2002
    Messages
    582
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 582
    Par défaut
    Bonjour à vous donbrico
    # $1 => path absolu du shell avec nom du shell
    # $7 => path du repertoire du shell sans le nom du shell
    A la vue de ceci : $7 correspond au dirname de $1
    donc "fichier" peut aussi prendre la valeur suivante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    fichier="`dirname $1`/fin_traitement.txt"
    à défaut si vous voulez garder $7
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    fichier="${7}/fin_traitement.txt"
    /usr/bin/php5 genere_vignette_process_lr.php $2 $3 $4 $5 >> $fichier &

    #On envoi un mail que si on a des erreurs
    if [ "x`cat $fichier | wc -l`" != "x2" ];
    then cat $fichier | /usr/bin/mail -s "rapport traitement" "$5" ;
    fi
    Vous lancer votre process php en sous process
    ("&")

    comment pouvez vous tester le contenu de fichier alors que votre process php n'est pas encore terminé ?

  5. #5
    Membre averti
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2008
    Messages
    41
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2008
    Messages : 41
    Par défaut Merci beaucoup Argoet
    Bonjour Argoet,
    Merci beaucoup pour votre réponse, et voici les correctifs que j'ai apporté :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
     
    #Liste des variables
    # $1 => choix du traitement des vignettes :1 non LR :2uniqement LR
    # $2 => choix du serveur (PROD PREPROD etc...)
    # $3 => traiter egalement les vignettes uploadees manuellement
    # $4 => destinataire du mail de rapport
    # $5 => path de la page PHP qui va lancer le traitement
    # $6 => path du repertoire du shell sans le nom du shell
     
    # variable : fichier de rapport
    fichier="${6}/fin_traitement.txt"
     
    rep_php=${5}
     
    # On se positionne dans le repertoire ou le script PHP va etre execute
    cd $rep_php
     
    # On initialise le rapport avec la date courante
    /bin/date > $fichier
     
    # On lance le traitement en appelant la page PHP et en lui transmettant les paramettres necessaires
    # En recuperant la sortie dans le fichier servant de corps au mail de rapport
    /usr/bin/php5 genere_vignette_process_lr.php $1 $2 $3 $4 >> $fichier
     
    #On envoi un mail que si on a des erreurs
    if [ "x`cat $fichier | wc -l`" != "x2" ];
       then  cat $fichier | /usr/bin/mail -s "rapport traitement" "$4" ;
    fi
    Et cela fonctionne parfaitement, encore merci pour tout.

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

Discussions similaires

  1. Tester l'existance d'un fct ou d'une variable sous Opéra.
    Par mch_27 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 08/11/2005, 16h35
  2. Concaténer des variables
    Par pcdj dans le forum Linux
    Réponses: 1
    Dernier message: 26/10/2005, 22h30
  3. utilisé une chaine comme un nom de variable sous delphi ?
    Par hatem_info dans le forum Langage
    Réponses: 3
    Dernier message: 11/10/2005, 16h22
  4. [FLASH MX2004] Déclaration de variables sous flash mx
    Par softyClochette dans le forum Flash
    Réponses: 4
    Dernier message: 29/11/2004, 16h11
  5. [C#] Concatener 2 variables pour en faire une 3ème
    Par Thomas Lebrun dans le forum Windows Forms
    Réponses: 6
    Dernier message: 11/05/2004, 21h02

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