Whi*_*Guy 3 linux bash shell bamboo
我有一个如下所示的脚本,该脚本通过在每个循环上重新定义 x 来检查我的 pod 是否处于运行状态。
x=$(/opt/oc get pods --selector app=${bamboo.shortPlanName} -o jsonpath='{range .items[]}{.status.phase}{"\n"}{end}')
until [ "$x" == "Running" ];
do
sleep 5
x=$(/opt/oc get pods --selector app=${bamboo.shortPlanName} -o jsonpath='{range .items[]}{.status.phase}{"\n"}{end}')
echo $x
done
Run Code Online (Sandbox Code Playgroud)
但是,我想修改我当前的脚本以也支持超时,我的意思是循环 60 秒后,应该停止,或者循环 12 次后,应该停止。知道该怎么做吗?
bashSECONDS提供了一个可以用作粗略定时器的特殊变量。
SECONDS=0
while (( SECONDS < 60)); do
x=$(/opt/oc get pods --selector app=${bamboo.shortPlanName} -o jsonpath='{range .items[]}{.status.phase}{"\n"}{end}')
if [[ $x == Running ]]; then
break
fi
sleep 5
done
Run Code Online (Sandbox Code Playgroud)
的扩展给出的不是分配的值,而是分配后的SECONDS秒数与分配的值之间的差值。效果就像一个变量,其值每秒增加 1。