В скрипте bash я хочу сделать запрос curl, чтобы пользователь не беспокоил.

trap "cleanup" 1 2 3 13 15

TMP_OUT=$(curl -H "Content-Type: application/json" -X POST -d "$DATA" "${HOST}:${PORT}"'/main/store' 2>/dev/null &)
 wait $!
 if [ $? -ne 0 ]
 then
        fatal "Something went wrong connecting to the service."
 fi

Как сделать так, чтобы служба не работала? Ожидание возвращает 0 даже если rc из запроса curl равен 7 и сценарий продолжается, чего не должно быть.

1 ответ1

0

Попробуйте что-то вроде этого:

TMP="$(mktemp)"

curl ifconfig.co 2>/dev/null >"${TMP}" &

wait $!
echo $?

read MY_IP < "${TMP}"
rm "${TMP}"
unset TMP

echo ${MY_IP}

По сути, вам нужно сохранить интересный процесс как прямое потомство « этой » оболочки.

Здесь мы перенаправляем его вывод во временный файл и принимаем его позже, используя read .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .