Как экранировать символы в полях скручивания? - PullRequest
0 голосов
/ 02 апреля 2020

Я пытаюсь отправить запрос на сервер, содержащий командную строку, которую я хочу запустить на сервере (я знаю, что это выглядит очень небезопасно, но я упустил много сложностей, чтобы упростить мой пример ):

JOB_ID=$(curl -F 'field1={"command":"bash","commandArgs":["-c", "echo 1 ; echo 2"],"priority":7,"outputPath":"example.out","errorPath":"example.err","commandEnvironment":{}}' ${JSR_HOST}/jobs | jq -r '.jobId')

Однако, когда я запускаю эту команду, я получаю следующую ошибку:

Warning: skip unknown form field: echo 
Warning: 2"],"priority":7,"outputPath":"example.out","errorPath":"example.err",
Warning: "commandEnvironment":{}}

Если я изменю свою команду на следующую, она будет работать (это было бы непрактично сделайте это в моем реальном случае, так как мне нужно выполнить одну команду для успешного выполнения второй команды):

JOB_ID=$(curl -F 'field1={"command":"bash","commandArgs":["-c", "echo 1 "],"priority":7,"outputPath":"example.out","errorPath":"example.err","commandEnvironment":{}}' ${JSR_HOST}/jobs | jq -r '.jobId')

Однако такое поведение заставляет меня поверить, что curl интерпретирует ';' как особый характер, и я думаю, именно поэтому он терпит неудачу. Что мне нужно сделать, чтобы правильно избежать этого?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...