script shell en utilisant une variable contenant des caractères spéciaux

voix
0

J'utilise Redis en script shell et je suis triying pour définir une valeur d'une clé

Voici mon script qui fonctionne très bien:

:/# redis-cli JSON.SET etat . '{name:Eric}'
Ok

mais quand j'utilise une variable qui contient mon JSON Je reçois que:

:/# json='{\name\:\Erci\}'
:/# ehco $json
'{name:Eric}'
:/# redis-cli JSON.SET etat . $json
(error) ERR wrong number of arguments for 'JSON.SET' command

J'ai essayé :

:/# redis-cli JSON.SET etat . ${json}
(error) ERR wrong number of arguments for 'JSON.SET' command

et:

:/# redis-cli JSON.SET etat . $json
(error) ERR JSON lexer error SPECIAL_EXPECTED at position 26

Quelqu'un peut-il aider, s'il vous plaît?

Créé 27/11/2018 à 15:16
source utilisateur
Dans d'autres langues...                            


1 réponses

voix
1

Vous n'avez pas besoin les tiques individuelles à l'intérieur de la variable:

$ json="{\"name\":\"Erci\"}"
$ redis-cli JSON.SET etat . "$json"
OK
$ redis-cli JSON.GET etat
"{\"name\":\"Erci\"}"
Créé 27/11/2018 à 17:54
source utilisateur

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more