Nb arguments envoyés à un shell via un navi
romegonic
Messages postés
28
Date d'inscription
Statut
Membre
Dernière intervention
-
jisisv Messages postés 3645 Date d'inscription Statut Modérateur Dernière intervention -
jisisv Messages postés 3645 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
J'ai un apache sur un serveur unix, qui execute des shells dans un repertoire cgi dédié.
Ces shells s'éxécutent parfaitement quand ils sont lancés à la main : ./monshell.sh
Et d'ailleurs ils retournent bien quand je leur demande, le nombre d'arguments ($#)
Or lors de l'appel via un navigateur, si j'envoie deux arguments à mon shell, ce navigateur ne transmet pas ces arguments de manière séparés, il considère qu'il n'y en a qu'un :
http://mon_serveur_web/rep_scripts_shell/monshell.sh?toto&tutu
Cela donne, si j'affiche le nombre d'arguments et les arguments eux-mêmes :
Nb_arg : 1
Arg_1 : toto&tutu
Donc en gros ce que je cherche c'est la synthaxe URL pour passer plus d'un argument, via un navigateur, vers un script shell (agissant en tant que cgi).
J'ai essayé diverses variantes avec des troncages de en lui mettant un espace entre chaque argument dans l'url mais le navigateur transforme naturellement cela en %20
J'ai des solutions de contournement, par exemple en comptant les arguments dans mon shell, mais je souhaite récupérer cela en $# directement pour faire fonctionner les vérifications du nombre d'arguments passés, dès le début du script).
Bref, merci par avance pour l'aide apportée :-)
J'ai un apache sur un serveur unix, qui execute des shells dans un repertoire cgi dédié.
Ces shells s'éxécutent parfaitement quand ils sont lancés à la main : ./monshell.sh
Et d'ailleurs ils retournent bien quand je leur demande, le nombre d'arguments ($#)
Or lors de l'appel via un navigateur, si j'envoie deux arguments à mon shell, ce navigateur ne transmet pas ces arguments de manière séparés, il considère qu'il n'y en a qu'un :
http://mon_serveur_web/rep_scripts_shell/monshell.sh?toto&tutu
Cela donne, si j'affiche le nombre d'arguments et les arguments eux-mêmes :
Nb_arg : 1
Arg_1 : toto&tutu
Donc en gros ce que je cherche c'est la synthaxe URL pour passer plus d'un argument, via un navigateur, vers un script shell (agissant en tant que cgi).
J'ai essayé diverses variantes avec des troncages de en lui mettant un espace entre chaque argument dans l'url mais le navigateur transforme naturellement cela en %20
J'ai des solutions de contournement, par exemple en comptant les arguments dans mon shell, mais je souhaite récupérer cela en $# directement pour faire fonctionner les vérifications du nombre d'arguments passés, dès le début du script).
Bref, merci par avance pour l'aide apportée :-)
A voir également:
- Nb arguments envoyés à un shell via un navi
- Classic shell - Télécharger - Personnalisation
- Nb si en anglais - Guide
- Le fichier à télécharger correspond au contenu brut d’un courrier électronique. de quel pays a été envoyé ce message ? - Guide
- Partager des photos via un lien - Guide
- Via michelin carte - Télécharger - Transports & Cartes
3 réponses
Précision : la solution du genre :
http://mon_serveur_web/rep_scripts_shell/monshell.sh?toto tutu
(avec un espace entre toto et tutu dans l'url passée au navigateur)
ne m'avance pas, car c'est une autre manière de passer les arguments (ce que je sais déjà faire) mais ne permet toujours pas de compter directement le nombre d'arguments passés, au sein du script.
http://mon_serveur_web/rep_scripts_shell/monshell.sh?toto tutu
(avec un espace entre toto et tutu dans l'url passée au navigateur)
ne m'avance pas, car c'est une autre manière de passer les arguments (ce que je sais déjà faire) mais ne permet toujours pas de compter directement le nombre d'arguments passés, au sein du script.
salut,
si tu utilises bash, ajoute ceci avant de tester $#
sinon, il faut utiliser sed.
si tu utilises bash, ajoute ceci avant de tester $#
set -- ${@//&/ }
sinon, il faut utiliser sed.
Avec la méthode GET, utilise la variable $QUERY_STRING
Voir par exemple
http://www.ffnn.nl/pages/articles/linux/cgi-scripting-tips-for-bash-or-sh.php
Johan
Voir par exemple
http://www.ffnn.nl/pages/articles/linux/cgi-scripting-tips-for-bash-or-sh.php
Johan