Vinky41 a écrit
Pour ce qui est de ton script j'ai vu ça : csrf_token=${csrfToken}
1. t'as pas un souci avec tes accolades ? tu voulais pas plutôt mettre : csrf_token={$csrfToken} ?
2. Il ne faut de toute manière ne pas en mettre pour que cela fonctionne 😉
Non, ça c'est tout à fait correct et la forme "standard" des variables shell.
Par contre, en général, pour éviter les "mauvaises surprises" comme par exemple un espace au milieu de la chaîne de caractère qui fait tout planter, on les met en général entre guillemets du genre :
foo="${bar}"
Tu connais sans doute cette "forme" de variable dans les expressions plus étendues comme :
foo=${#bar}
Là on prend la longueur de la chaîne 'bar', et donc pas de guillemets puisque cela renvoie un nombre entier.
Ou alors :
foo="${bar:3:2}"
Celle ça extrait une sous-chaîne, mais il n'est PAS RECOMMANDE de l'utiliser car c'est un "bashism", voir ici pour plus d'explication :
https://wiki.ubuntu.com/DashAsBinSh
En fait, l'écriture de la variable avec les {} est une forme "nue" des autres expansions de variables. C'est la variable brute, non étendue.
C'est
une bonne pratique de l'écrire ainsi, parce que de la sorte tu identifies bien les variables. En outre, dans certains cas tu ne peux pas faire autrement que d'utiliser la variable avec des crochets comme par exemple :
foo="${bar}blah blah"
Là j'ai concaténé 'blah blah' au contenu de la variable 'bar'. Sans les crochets ça donnerait :
foo="$barblah blah"
... et donc le shell va chercher une variable 'barblah' qui n'existe pas !
Donc même si la formulation correcte serait :
csrf_token="${csrfToken}"
avec des guillemets en plus, le bug ne vient pas de là puisque le CSRF ne contient a priori pas d'espaces ni caractères "piège" qui planteraient un script. C'est cependant aussi
une bonne pratique de ne pas oublier les guillemets !..
Désolé, je ne peux pas aider beaucoup plus car la Freebox n'est pas chez moi (elle est loin).
Par contre de bonnes pistes pour trouver d'où vient le bug :
- faire tourner le script en mode "debug" (dash -x ./script params)
- rajouter des options -v aux curls (pour voir plus de détail sur ce qu'il se passe)