Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Question curl et " ! "

10 réponses
Avatar
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

10 réponses

Avatar
Sergio
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
Avatar
Benoit Izac
Bonjour,

le 07/03/2011 à 16:18, at a écrit dans le message
<4d74f759$0$7711$ :

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
Avatar
Pascal
-------- 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"

??
Avatar
at
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
Avatar
Benoit Izac
Bonjour,

le 07/03/2011 à 16:37, at a écrit dans le message
<4d74fbba$0$32453$ :

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
Avatar
xavier
Benoit Izac wrote:

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)
Avatar
at
Benoit Izac a couché sur son écran :

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

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



Extra merci :)
Avatar
Nicolas George
Xavier, dans le message <1jxru2p.x5d359kd8394N%, a
é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(...).
Avatar
xavier
Nicolas George <nicolas$ wrote:

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)
Avatar
Nicolas George
Xavier, dans le message <1jxrxjb.569m8pzm72pmN%, a
é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.