运行命令,直到成功n次bash



如果返回失败,我想运行命令n次数我从下面的循环

开始
until find . -type f -exec md5sum {} ;
do
<something >
done

我想在继续前进之前运行大约n次不确定我如何从这里继续。我尝试使用返回变量$?并使用它循环,但没有运气我还如何使用上述循环或此处提出的内容将发现的输出放入变量谢谢

让我让这个杂项更清晰

所以我实际上是这样运行的函数

fcn () {
    for file
    do
     until md5sum "$file"
        do
        <something >
        done
    done
}

打电话
find . -type f -print0 | xargs -0 -P 0 bash -c 'fcn "$@"'

因此,md5sum "$file"的返回值是我研究的

attempts=0
while ! result=$(find . …) || (( attempts++ > 5 )); do
    …
done

以上将将成功查找命令的结果设置为变量result。如果尝试超过五个,则循环将结束,但是result的值是否发生。

您可以在环境中检查命令的结果 $?

如果执行的最后一个命令成功,则此变量将保持值0

我的猜测就是这样:

while true; do
    $(command)
    if [ $? -eq 0 ] ; then
        exit
    fi
done

请记住,如果您的命令后执行任何内容,则$?的值将会更改。因此,只要在此处执行相关命令时,请确保将$?值保存在另一个变量中,或立即对其进行检查。

相关内容

  • 没有找到相关文章

最新更新