Affichage de variables internes à un shell dans un navigateur
romegonic
Messages postés
28
Date d'inscription
Statut
Membre
Dernière intervention
-
dubcek Messages postés 18789 Date d'inscription Statut Contributeur Dernière intervention -
dubcek Messages postés 18789 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) :
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 ?
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 ?
A voir également:
- Affichage de variables internes à un shell dans un navigateur
- Navigateur web - Guide
- Classic shell - Télécharger - Personnalisation
- Extension de navigateur - Guide
- Navigateur privé - Guide
- Double affichage sur un seul écran - Guide
5 réponses
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.
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.
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 ''
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 ''
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question