Page 1 sur 2
os.execute, curl et double quotes
Publié : 09 juil. 2017, 23:24
par dokho
Bonsoir,
J'ai un problème avec un script dans lequel j'appelle, via curl, une url contenant des doubles quotes:
Code : Tout sélectionner
os.execute('curl http://192.168.x.XXX/control?cmd=NEXTION,tempatelier.txt="HELLO WORLD"')
J'ai essayé pas mal de combinaison mais sans succès ... si une âme charitable pouvait m'indiquer la solution
Merci.
Re: os.execute, curl et double quotes
Publié : 10 juil. 2017, 01:29
par Chrominator
As-tu essayé ce qui suit ?
Code : Tout sélectionner
os.execute('curl http://192.168.x.XXX/control?cmd=NEXTION,tempatelier.txt=%22HELLO WORLD%22')
Re: os.execute, curl et double quotes
Publié : 10 juil. 2017, 07:31
par dokho
Chrominator a écrit :As-tu essayé ce qui suit ?
Code : Tout sélectionner
os.execute('curl http://192.168.x.XXX/control?cmd=NEXTION,tempatelier.txt=%22HELLO WORLD%22')
Bonjour,
Essayé à l'instant et ça ne fonctionne pas

Re: os.execute, curl et double quotes
Publié : 10 juil. 2017, 11:33
par vil1driver
Salut,
Code : Tout sélectionner
-- encode du texte pour le passer dans une url
function url_encode(str)
if (str) then
str = string.gsub (str, "\n", "\r\n")
str = string.gsub (str, "([^%w %-%_%.%~])",
function (c) return string.format ("%%%02X", string.byte(c)) end)
str = string.gsub (str, " ", "+")
end
return str
end
local txt = "hello world"
os.execute('/usr/bin/curl -m 15 "http://192.168.x.XXX/control?cmd=NEXTION,tempatelier.txt='..url_encode(txt)..'" &')
Re: os.execute, curl et double quotes
Publié : 10 juil. 2017, 17:21
par dokho
Salut vil1driver,
Je viens de tester: ça ne fonctionne pas non plus

Re: os.execute, curl et double quotes
Publié : 10 juil. 2017, 17:48
par vil1driver
alors le problem est ailleurs,
teste déjà les choses dans un navigateur..
Re: os.execute, curl et double quotes
Publié : 10 juil. 2017, 17:48
par dokho
Dans un navigateur ou en ligne de commande dans une console ça passe nickel
Envoyé de mon SM-N9005 en utilisant Tapatalk
Re: os.execute, curl et double quotes
Publié : 10 juil. 2017, 18:16
par vil1driver
bah si tu sais quelle commande va bien, utilise la dans le script...
Re: os.execute, curl et double quotes
Publié : 10 juil. 2017, 18:39
par dokho
Ce n'est pas aussi simple que ça ...
Ceci fonctionne dans un navigateur:
Code : Tout sélectionner
http://192.168.0.239/control?cmd=NEXTION,tempatelier.txt="hello"
Ceci fonctionne dans un terminal:
Code : Tout sélectionner
curl 'http://192.168.0.239/control?cmd=NEXTION,tempatelier.txt="test"'
Mais ça dans un script je n'arrive pas à trouver ce qui fonctionne ...

Re: os.execute, curl et double quotes
Publié : 10 juil. 2017, 18:48
par dokho
La commande qui permet de régler l'éclairage de l'écran fonctionne sans problème dans le script:
Code : Tout sélectionner
os.execute('curl http://192.168.0.239/control?cmd=NEXTION,dim=0')
Le problème vient des doubles quotes, je ne sais pas comment les passer ... et j'aimerais éviter de passer par un script bash ou du mqtt ...