Bash-在函数返回值时运行

时间:2018-09-25 02:27:53

标签: linux bash shell

我有一个简单的函数,该函数调用和端点来获取值:

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 :(得分:2)

所以...您想等到获得值后再回声一次吗?

while [[ -z $token ]]; do
    token=$(get_token root)
done
echo "Hello World!"

答案 1 :(得分:-1)

while [ -z "$token" ]; do
    echo "Hello World!"
    token=$(get_token root)
    sleep 1
done