シェルを実行するジェンキンスジョブがあり、特定の条件が期待どおりの状態ではない場合は待機したいが、30秒間待機するように要求し、現在の状況が22秒間実行されます。希望の状態に到達できない、または
#!/bin/bash
container_name=$(helm install "$USER"-0.1.0.tgz | grep -A2 "v1/Pod(related)" | awk 'NR>2' | awk '{ print $1 }')
container_status=$(kubectl get pod "$container_name" | grep "$container_name" | awk '{ print $3 }')
count=0
if [ "$container_status" != "Running" ]
then
sleep 10
count+=1
if [ $count -eq 3 ]
then
break
fi
else
echo "Container is Ready!!"
fi
答え1
次のことをしたいようです。
#!/bin/bash
while [ "$container_status" != "Running" ] ; do
...
done
現在はコードを一度だけ実行しているので(計算とにかく3つには達しません。)
何かが「準備された」時期を検出するには、名前付きパイプから読み取る既存の方法を使用し、準備ができたときに別々の(サブ)プロセスを使用してパイプに書き込むよりも悪いことをすることができます。