Как передать последовательность символов ./abcd.sh '{\ "type \": \ "path \" , \ "Key \": []} 'в качестве аргумента сценария?

Я написал сценарий оболочки с именем keepAbcdRunning, задача которого - проверять, запущена ли команда / процесс 'abcd' и если это не так, запустить его.

keepAbcdRunning имеет вид:

#!/bin/bash
if pgrep -x $1 > /dev/null
then echo "$1 is running"
else echo "calling $2"
$2
fi
exit 0

Как я уже писал, keepAbcdRunning требует два входных аргумента, $ 1 - это имя команды / процесса для проверки и $ 2 - это команда. необходимо для запуска abcd.

Сам abcd представляет собой сценарий, который запускает приложение, которое принимает в качестве входных данных строку в формате Json. Если бы я хотел вызвать abcd прямо из терминала, я бы позвонил:

./abcd.sh '{\"type\":\"path\",\"key\":[]}'

Однако мне кажется, что я не могу передать последовательность символов таким образом, чтобы abcd.sh вызывался правильно из keepAbcdRunning ....

-1
задан 20 April 2017 в 09:50

1 ответ

Это делает это, я думаю: "./abcd.sh '{\\\\"вводят \\\": \\\"соединяют \\\каналом" \, \\\"ключ \\\": []}'"

В основном нуждался

\\-> \

\"->"

\,->,

Наконец, целая вещь должна была быть в двойных кавычках, таким образом, у меня могли быть одинарные кавычки в последовательности.... https://Редактирование stackoverflow.com/questions/35063332/insert-single-quote-with-sed

: Это было моим первым разом, делая в значительной степени что-либо со сценариями / Linux / Unix / человечность, так послушайте мой совет с щепоткой соли, но я впоследствии нашел, что запись json представляет в виде строки в файл и затем передающую ссылку на тот файл, чтобы быть так намного более проста, чем попытка передать саму строку

0
ответ дан 3 November 2019 в 10:24

Другие вопросы по тегам:

Похожие вопросы: