我有一个简单的函数,该函数调用和端点来获取值:
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命令。有更好的方法吗?
答案 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