Я написал сценарий оболочки с именем 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 ....
Это делает это, я думаю: "./abcd.sh '{\\\\"вводят \\\": \\\"соединяют \\\каналом" \, \\\"ключ \\\": []}'"
В основном нуждался
\\-> \
\"->"
\,->,
Наконец, целая вещь должна была быть в двойных кавычках, таким образом, у меня могли быть одинарные кавычки в последовательности.... https://Редактирование stackoverflow.com/questions/35063332/insert-single-quote-with-sed
: Это было моим первым разом, делая в значительной степени что-либо со сценариями / Linux / Unix / человечность, так послушайте мой совет с щепоткой соли, но я впоследствии нашел, что запись json представляет в виде строки в файл и затем передающую ссылку на тот файл, чтобы быть так намного более проста, чем попытка передать саму строку