Question curl et " ! "

Le
at
Bonjour,

J'utilise curl (enfin j'essaye) mais je dois passer un "!" dans un
formulaire et curl l'interprète comme une commande interne (-bash: !:
event not found)

Donc, ça donne

curl -d "key=blabla!&mode=3&nom=ave<nture" "http://www.example.com"

J'ai aussi essayé

curl -d "key=blabla!" "&mode=3&nom=aventure"

Mais ça fait la même chose.

Quelqu'un connait la solution ?

Merci
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Sergio
Le #23183221
Le 07/03/2011 16:18, at a écrit :
Bonjour,

J'utilise curl (enfin j'essaye) mais je dois passer un "!" dans un formulaire et curl l'interprète comme une commande interne
(-bash: !: event not found)

Donc, ça donne

curl -d "key=blabla!&mode=3&nom=ave<nture" "http://www.example.com"

J'ai aussi essayé

curl -d "key=blabla!" "&mode=3&nom=aventure"

Mais ça fait la même chose.

Quelqu'un connait la solution ?



curl -d "key=blabla!" "&mode=3&nom=aventure" "http://www.example.com"

Je ne connais pas spécialement curl, mais il faut échapper le "!" avec un "" parce qu'il est interprété par le shell

Idem pour :
echo "salut!"

--
Serge http://leserged.online.fr/
Mon blog: http://cahierdesergio.free.fr/
Soutenez le libre: http://www.framasoft.org
Benoit Izac
Le #23183211
Bonjour,

le 07/03/2011 à 16:18, at
J'utilise curl (enfin j'essaye) mais je dois passer un "!" dans un
formulaire et curl l'interprète comme une commande interne (-bash: !:
event not found)



« ! » est utilisé par bash pour l'historique. Soit tu mets entre simple
quote : '!blah', soit tu échappes avec «  » : !bla.

--
Benoit Izac
Pascal
Le #23183201
-------- Message original --------

Bonjour,

J'utilise curl (enfin j'essaye) mais je dois passer un "!" dans un
formulaire et curl l'interprète comme une commande interne (-bash: !:
event not found)

Donc, ça donne

curl -d "key=blabla!&mode=3&nom=ave<nture" "http://www.example.com"

J'ai aussi essayé

curl -d "key=blabla!" "&mode=3&nom=aventure"

Mais ça fait la même chose.

Quelqu'un connait la solution ?

Merci




et comme ça :
curl -d "key=blabla!&mode=3&nom=ave<nture" "http://www.example.com"

??
at
Le #23183291
at vient de nous annoncer :
Bonjour,

J'utilise curl (enfin j'essaye) mais je dois passer un "!" dans un formulaire
et curl l'interprète comme une commande interne (-bash: !: event not found)

Donc, ça donne

curl -d "key=blabla!&mode=3&nom=ave<nture" "http://www.example.com"

J'ai aussi essayé

curl -d "key=blabla!" "&mode=3&nom=aventure"

Mais ça fait la même chose.

Quelqu'un connait la solution ?

Merci



Merci tous le monde, mais ça entre "!" dans le formulaire et non pas
le "!" seul avec "!"

Par contre avec un simple quote ça marche.


Autre question bête du jour, j'edite un fichier bash qui contient

data=`curl -s -b "......

Et donc avec mon clavier et mes doigts boudinés, comment j'obtiens ce `
?

Merci
Benoit Izac
Le #23183281
Bonjour,

le 07/03/2011 à 16:37, at
Autre question bête du jour, j'edite un fichier bash qui contient

data=`curl -s -b "......

Et donc avec mon clavier et mes doigts boudinés, comment j'obtiens ce
?



Ce « ` » tu veux dire ? alt-gr 7.

Mais tu peux faire mieux : remplace les `` par $().

--
Benoit Izac
xavier
Le #23183441
Benoit Izac
Mais tu peux faire mieux : remplace les `` par $().



Je plussoie, plus lisible. Je n'utilise plus que ça dans mes scripts.
Idem pour l'utilisation de system(@) dans perl à la place du backtick.

Je ne sais pas par contre si ça a une incidence sur le/les shells
sous-forkés.

--
XAv
In your pomp and all your glory you're a poorer man than me,
as you lick the boots of death born out of fear.
(Jethro Tull)
at
Le #23183681
Benoit Izac a couché sur son écran :

Ce « ` » tu veux dire ? alt-gr 7.

Mais tu peux faire mieux : remplace les `` par $().



Extra merci :)
Nicolas George
Le #23183791
Xavier, dans le message écrit :
Idem pour l'utilisation de system(@) dans perl à la place du backtick.



Ce n'est pas équivalent du tout. Le backtick est équivalent à l'opérateur
qx, pour lequel on peut mettre les délimiteurs qu'on veut, y compris
asymétriques : qx{...} ou qx(...).
xavier
Le #23183781
Nicolas George
Ce n'est pas équivalent du tout. Le backtick est équivalent à l'opérateur
qx, pour lequel on peut mettre les délimiteurs qu'on veut, y compris
asymétriques : qx{...} ou qx(...).



Ah tiens oui, j'utilise qx() aussi. Faut que je me plonge dans la doc
pour la différence avec system().

--
XAv
In your pomp and all your glory you're a poorer man than me,
as you lick the boots of death born out of fear.
(Jethro Tull)
Nicolas George
Le #23184401
Xavier, dans le message écrit :
Ah tiens oui, j'utilise qx() aussi. Faut que je me plonge dans la doc
pour la différence avec system().



C'est très simple : qx capture la sortie de la commande lancée et la
retourne sous forme de liste ou de chaîne ; system ne la capture pas et
retourne le code de retour de la commande.
Publicité
Poster une réponse
Anonyme