Affichage de variables internes à un shell dans un navigateur

romegonic Messages postés 29 Statut Membre -  
dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

Via un apache, dans un répertoire dédié aux cgi, je lance un script shell, qui fait des actions diverses (création de fichier, de variables, modification, affichage etc ...), mais l'affichage ne se passe pas correctement via un navigateur.

L'exécution de ce shell lancé directement sur la machine unix (AIX / ksh), affiche tout correctement.

En revanche, l'appel de ce script via un navigateur perd certaines variables internes au shell script (et pas d'autres ...)

Bout de code pour illustrer le problème( le exit est posé pour se limiter à la reproduction du problème) :

#!/bin/sh
echo Content-type: text/html
echo

#set -xv

## Initialisations

export LD_LIBRARY_PATH=/usr/local/pkg/lib:$[LD_LIBRARY_PATH]
export oldPATH=$PATH
....
....
## Main ##
# recupération du json correspondant au json_id fourni #
url_base='http://www.google.fr
curl -i -H 'Accept: application/json' -H 'Content-Type: application/json' $url_base > $recu; 

echo $recu
cat $recu
echo '<br>'
objet='sed -n 7p ${recu}'; echo 'Objet : '$objet
exit


Dans ce code, l'affichage fonctionne dans le navigateur, pour echo $recu (nom de fichier) et cat $recu (affichage du contenu du fichier)
En revanche, echo 'Objet : '$objet ne fonctionne que dans la console, pas via un navigateur.

Quelqu'un pourrait m'aider ?
Est-ce un problème de portée de variable ? Comment le résoudre ?

5 réponses

  1. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    hello
    le sed est entouré de back-quotes, exécution de ?
    essayer avec export object=...
    0
  2. romegonic Messages postés 29 Statut Membre
     
    Bonjour,

    Voici le bout de code concernant $objet et les affichages, en cas de lancement via la console, puis via le navigateur (en mode cgi sur l'apache).

    Je perd la valeur de objet quand je lance via le navigateur (donc via l'apache)

    BOUT DE CODE CONCERNANT OBJET :
    ******************************
    ...
    echo 'Fichier JSON : '$recu'<br>'

    export objet='cat ${recu} |sed -n 7p';
    echo 'Objet : '${objet}'<br>';
    exit

    LANCEMENT EN LIGNE DE COMMANDE : AFFICHAGE
    ****************************************
    Content-type: text/html

    JSON id : 533966c2d89602e3b2536793<br>
    % Total % Received % Xferd Average Speed Time Time Time Current
    Dload Upload Total Spent Left Speed
    133 399 0 399 0 0 44249 0 --:--:-- --:--:-- --:--:-- 79800
    Fichier JSON : /app/list/logs/admin/temp/recu_533966c2d89602e3b2536793_2014_04_17_09_06_06.txt<br>
    Objet : {"nom_machine_logique":"quawas1f5","socle":"was_7","nom_serveur":"srvzentest","nom_application":"srvzentest_zentest.ear","nom_ear":"zentest.ear","action":"start","date_creation":"13/03/2014 11:11:11","date_debutjob":"17/04/2014 08:34:07","date_finjob":"17/04/2014 08:34:09","origine":"plugin","status":"success","etape":"startwas","date_etape":"01/04/2014 14:00:00","_id":"533966c2d89602e3b2536793"}<br>

    LANCEMENT VIA NAVIGATEUR : AFFICHAGE
    **********************************
    JSON id : 533966c2d89602e3b2536793
    Fichier JSON : /app/list/logs/admin/temp/recu_533966c2d89602e3b2536793_2014_04_17_09_05_45.txt
    Objet :

    Par ailleurs le fait d'exporter $objet ne fait que le rajouter au PATH et d'afficher l'ensemble des variables d'environnements chargées, ce je ne souhaite pas.
    0
  3. romegonic Messages postés 29 Statut Membre
     
    précision :

    en effet il s'agit de back-quote dans :
    export objet='cat ${recu} |sed -n 7p';

    je suppose que le navigateur n'affiche pas bien les ''
    0
  4. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    export tout seul affiche les variables, pas suivi d'une assignation
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    et
    sed -n 7p ${recu}
    à la place de
    objet='sed -n 7p ${recu}'; echo 'Objet : '$objet
    affiche quelque chose ?
    0