Bash - запускается, когда функция возвращает значение - PullRequest
0 голосов
/ 25 сентября 2018

У меня есть простая функция, которая вызывает конечную точку для получения значения:

get_token() { curl -sf "http://127.0.0.1:8080/v1/$1?raw"; }

А когда вы запускаете:

echo $(get_token root)

Возвращает токен в виде строки.Теперь я хочу выполнить некоторые команды только один раз, и когда эта функция возвращает значение, потому что я не знаю, когда API должен вернуть значение (почти асинхронно).Я думал, что могу сделать что-то вроде:

until [ ! $(get_token root)]; do echo "Hello World!"; done

Но это запускает команду echo бесконечно, когда эта функция возвращает значение.Есть ли лучший способ сделать это?

Ответы [ 2 ]

0 голосов
/ 25 сентября 2018

так ... вы хотите подождать, пока не получите значение, а затем повторить что-то один раз?

while [[ -z $token ]]; do
    token=$(get_token root)
done
echo "Hello World!"
0 голосов
/ 25 сентября 2018
while [ -z "$token" ]; do
    echo "Hello World!"
    token=$(get_token root)
    sleep 1
done
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...