сценарий оболочки с использованием переменной, содержащей специальные символы - PullRequest
0 голосов
/ 27 ноября 2018

Я использую Redis в сценарии оболочки и пытаюсь установить значение ключа

Вот мой сценарий, который отлично работает:

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

, но когда я использую переменнуюкоторые содержат мой Json Я получаю:

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

Я пытался:

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

и:

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

Может кто-нибудь помочь, пожалуйста?

1 Ответ

0 голосов
/ 27 ноября 2018

Вам не нужны одиночные галочки внутри переменной:

$ json="{\"name\":\"Erci\"}"
$ redis-cli JSON.SET etat . "$json"
OK
$ redis-cli JSON.GET etat
"{\"name\":\"Erci\"}"
...