gpt4 book ai didi

shell - 如何在 shell 中编写重试逻辑

转载 作者:行者123 更新时间:2023-12-02 21:47:38 33 4
gpt4 key购买 nike

我需要执行命令result=$(elastic-mapreduce --jobflow $JOBFLOW --list)并取回结果。我需要检查结果是否存在字符串“PENDING”或“WAITING”或“RUNNING”,如果存在,我需要再次重试相同的命令,直到看不到“PENDING”、“WAITING”或“运行”

如何使用 bash 脚本实现这种功能。

最佳答案

我会写:

shopt -s extglob
while :; do
result=$(elastic-mapreduce --jobflow $JOBFLOW --list)
[[ $result == +(*RUNNING*|*PENDING*|*WAITING*) ]] || break
# do you need a delay here?
sleep 10
done
echo "result now has no RUNNING or PENDING or WAITING"
: command 是一个 shell 内置函数,它评估它的参数(如果有的话),并简单地返回一个“真”状态。
在此处阅读有关模式匹配的信息: http://www.gnu.org/software/bash/manual/bashref.html#Pattern-Matching

关于shell - 如何在 shell 中编写重试逻辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23830133/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com