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

AppleScript me prend le chou

15 réponses
Avatar
M.V.
Hello,

Si j'utilise AppleScript, la commande :

do shell script "echo -n VW5lIGZhbWlsbGUgZMOpY2ltw6llIHBhciBsYSBDb3ZpZC0xOSDD | base64 -D | od -t x1 -An"

me donne comme résultat :
fa 75 56 e6 52 06 66 16 d6 96 c6 c6 52 06 4c 3a
96 36 96 dc 3a 96 52 07 06 17 22 06 c6 12 04 36
f7 66 96 42 d3 13 92

mais si je tape directement dans Terminal :

echo -n VW5lIGZhbWlsbGUgZMOpY2ltw6llIHBhciBsYSBDb3ZpZC0xOSDD | base64 -D | od -t x1 -An

j'obtiens :
55 6e 65 20 66 61 6d 69 6c 6c 65 20 64 c3 a9 63
69 6d c3 a9 65 20 70 61 72 20 6c 61 20 43 6f 76
69 64 2d 31 39 20 c3

D'après <https://base64.guru/converter/decode/hex> référencé par
Olivier Miakinen (donc fiable), c'est le résultat de Terminal qui
est correct.

Est-ce que quelqu'un pourrait m'expliquer pourquoi AS ne me donne pas
le bon résultat ?

Merci d'avance.

X-post et fu2 fr.comp.sys.mac.programmation
--
Michel VAUQUOIS - <http://michelvauquois.fr>

10 réponses

1 2
Avatar
pehache
Le 24/11/2021 Í  18:10, M.V. a écrit :
Hello,
Si j'utilise AppleScript, la commande :
do shell script "echo -n VW5lIGZhbWlsbGUgZMOpY2ltw6llIHBhciBsYSBDb3ZpZC0xOSDD | base64 -D | od -t x1 -An"
me donne comme résultat :
fa 75 56 e6 52 06 66 16 d6 96 c6 c6 52 06 4c 3a
96 36 96 dc 3a 96 52 07 06 17 22 06 c6 12 04 36
f7 66 96 42 d3 13 92
mais si je tape directement dans Terminal :
echo -n VW5lIGZhbWlsbGUgZMOpY2ltw6llIHBhciBsYSBDb3ZpZC0xOSDD | base64 -D | od -t x1 -An
j'obtiens :
55 6e 65 20 66 61 6d 69 6c 6c 65 20 64 c3 a9 63
69 6d c3 a9 65 20 70 61 72 20 6c 61 20 43 6f 76
69 64 2d 31 39 20 c3
D'après <https://base64.guru/converter/decode/hex&gt; référencé par
Olivier Miakinen (donc fiable), c'est le résultat de Terminal qui
est correct.
Est-ce que quelqu'un pourrait m'expliquer pourquoi AS ne me donne pas
le bon résultat ?

J'ai bien une idée mais vu que tu m'as plonké, tant pis :)
--
"...sois ouvert aux idées des autres pour peu qu'elles aillent dans le
même sens que les tiennes.", ST sur fr.bio.medecine
Avatar
Fleuger
Le 24 novembre 2021 Í  18:10, M.V. a écrit ceci :
Est-ce que quelqu'un pourrait m'expliquer pourquoi AS ne me donne pas
le bon résultat ?

C'est l'option -n qui ne lui plait pas.
do shell script "echo
VW5lIGZhbWlsbGUgZMOpY2ltw6llIHBhciBsYSBDb3ZpZC0xOSDD | base64 -D | od -t
x1 -An"
donne le bon résultat.
Je ne sais pas pourquoi.
-n supprime le caractère de fin de ligne.
Mais au vu de la réponse du terminal sans l'option, je ne vois pas de
caractère de fin de ligne.
<x-man-page://echo>
<https://fr.wikipedia.org/wiki/Echo_(Unix)>
--
Gérard FLEUROT
Avatar
Fleuger
Le 24 novembre 2021 Í  23:39, pehache a écrit ceci :
J'ai bien une idée mais vu que tu m'as plonké, tant pis :)

S'il t'a plonké, il ne peux pas lire ton message !
Mais moi, j'aurais bien aimé avoir l'explication parce que j'ai bien la
solution, mais je ne comprends pas pourquoi, au vu des liens que j'ai
consultés et donnés.
--
Gérard FLEUROT
Avatar
Fleuger
Le 25 novembre 2021 Í  09:50, M.V. a écrit ceci :
Parfait en effet… Ça fait tout Í  fait mon affaire ! ;-)
Comment t'est venue cette brillante idée ?

Intuitivement : j'ai ouvert le man pour voir Í  quoi correspondait
l'option.
Moi non plus mais je ne sais pas trop ce qu'est un «Â caractère de fin
de ligne ».

Il y a un exemple sur la page :
<https://fr.wikipedia.org/wiki/Echo_(Unix)>
Il y a l'Unix pur et l'Unix Í  la sauce Apple, ce qui est probablement la
cause de l'anomalie que tu as rencontrée.
--
Gérard FLEUROT
Avatar
M.V.
Le 25 novembre 2021 Í  11 h 34, Fleuger a tenu les propos suivants :
Moi non plus mais je ne sais pas trop ce qu'est un «Â caractère de fin
de ligne ».

Il y a un exemple sur la page :
<https://fr.wikipedia.org/wiki/Echo_(Unix)>

Vu.
Merci pour tout… tu m'as sauvé ma journée ! ;-)
--
Michel VAUQUOIS - <http://michelvauquois.fr&gt;
Avatar
M.V.
Le 25 novembre 2021 Í  09 h 21, Fleuger a tenu les propos suivants :
C'est l'option -n qui ne lui plait pas.

Je viens de voir que l'option -e ne plaisait pas non plus ͠ AS !
- dans Terminal : echo -e "x4E" → N
- dans AS : do shell script "echo -e ''x4E" → -e N
alors que : do shell script "echo ''x4E" → N
--
Michel VAUQUOIS - <http://michelvauquois.fr&gt;
Avatar
Fleuger
Le 25 novembre 2021 Í  14:52, M.V. a écrit ceci :
Je viens de voir que l'option -e ne plaisait pas non plus ͠ AS !
- dans Terminal : echo -e "x4E" → N
- dans AS : do shell script "echo -e ''x4E" → -e N
alors que : do shell script "echo ''x4E" → N

J'ai l'impression que cette commande est difficile Í  gérer suivant les
systèmes (ou les shell).
Dans le man Apple, l'option -e n'est précisée.
Mais je l'ai trouvée sur <https://ss64.com/osx/echo.html&gt; et je n'y
comprends pas grand chose.
--
Gérard FLEUROT
Avatar
M.V.
Le 25 novembre 2021 Í  17 h 17, Fleuger a tenu les propos suivants :
Dans le man Apple, l'option -e n'est précisée.

J'avais pris modèle ici :
<https://www.baeldung.com/linux/character-hex-to-ascii&gt;
--
Michel VAUQUOIS - <http://michelvauquois.fr&gt;
Avatar
pehache
Le 25/11/2021 Í  09:21, Fleuger a écrit :
Le 24 novembre 2021 Í  18:10, M.V. a écrit ceci :
Est-ce que quelqu'un pourrait m'expliquer pourquoi AS ne me donne pas
le bon résultat ?

C'est l'option -n qui ne lui plait pas.
do shell script "echo
VW5lIGZhbWlsbGUgZMOpY2ltw6llIHBhciBsYSBDb3ZpZC0xOSDD | base64 -D | od -t
x1 -An"
donne le bon résultat.
Je ne sais pas pourquoi.
-n supprime le caractère de fin de ligne.
Mais au vu de la réponse du terminal sans l'option, je ne vois pas de
caractère de fin de ligne.
<x-man-page://echo>
<https://fr.wikipedia.org/wiki/Echo_(Unix)>

Je n'avais pas d'idée toute faite sur la question, juste des pistes. Par
exemple que le shell lancé par Apple Script n'est peut-être pas le même,
et/ou que sa configuration est différente, de celui du Terminal. Entre
les différents shells il y a parfois des comportements différents.
D'ailleurs je vois que "echo -n toto" ne se comporte pas pareil dans
bash et dans zsh (du moins avec leurs configs par défaut).
Et aussi de tester individuellement chacune des 3 commandes enchaÍ®nées
par les pipes, pour voir laquelle est "fautive".
--
"...sois ouvert aux idées des autres pour peu qu'elles aillent dans le
même sens que les tiennes.", ST sur fr.bio.medecine
Avatar
josephb
Bonjour Michel
M.V. wrote:
Est-ce que quelqu'un pourrait m'expliquer pourquoi AS ne me donne pas
le bon résultat ?

La raison en est donnée dans le man de "echo" : le builtin echo du shell
fourni avec OS X, comme recommandé par les normes en vigueur, retire
d'abord l'argument -n (censé rajouter une linefeed Í  la fin du bloc Í 
décoder), alors que l'interpréteur d'Applescript transmet littéralement
la chaÍ®ne entrée au bas niveau du shell.
Supprimer le -n, dans le Terminal mais surtout dans la commande
Applescript retourne la bonne valeur.
Cordialement,
--
J. B.
1 2