Quantcast
Viewing all articles
Browse latest Browse all 2722

bashでdo...whileする

bashには do...while が(たぶん)ないが、while文の条件式に全てを詰め込めば似たようなことができる。
条件式が true を返せばいいので最後に判定を入れとけばいい。

この例では、AWS CloudMapのサービスインスタンスが5つ登録されるまで待機している。
((n < 5))が true の間 sleep 1で待機する。

n=0
while
  values=$(
    aws servicediscovery list-instances \--service-id srv-xxx \--query'Instances[].Attributes|sort_by(@,&order)|[].value')n=$(echo"$values" | jq length)(( n < 5 ))do
  echo"wait..."sleep 1
done

Viewing all articles
Browse latest Browse all 2722

Trending Articles