쉘을 실행하는 젠킨스 작업이 있고 특정 조건이 예상된 상태가 아닌 경우 기다리기를 원하지만 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개에는 도달하지 않습니다.)
무언가가 "준비"된 시기를 감지하려면 명명된 파이프에서 읽는 기존 방법을 사용하고 준비가 되었을 때 별도의 (하위)프로세스를 사용하여 파이프에 쓰는 것보다 더 나쁜 일을 할 수 있습니다.