如果返回失败,我想运行命令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
请记住,如果您的命令后执行任何内容,则$?
的值将会更改。因此,只要在此处执行相关命令时,请确保将$?
值保存在另一个变量中,或立即对其进行检查。