如果返回不成功,我想多次运行一个命令 我已经开始使用以下循环
until find . -type f -exec md5sum {} \;
do
<something >
done
我希望在继续下一个文件之前运行大约n次 不知道我怎么能从这里继续。我试过使用return变量$?并使用此循环,但没有运气 另外,我如何使用上面的循环或这里提出的将find的输出放入变量 感谢
让我让这个更清晰
所以我实际上是用这个函数运行
fcn () {
for file
do
until md5sum "$file"
do
<something >
done
done
}
使用
进行通话find . -type f -print0 | xargs -0 -P 0 bash -c 'fcn "$@"'
所以md5sum "$file"
的返回值是我已经研究过的
答案 0 :(得分:1)
attempts=0
while ! result=$(find . …) || (( attempts++ > 5 )); do
…
done
以上将成功查找命令的结果设置为变量result
。如果尝试次数超过五次,那么循环将结束,但如果发生这种情况,则result
的值不清楚。
答案 1 :(得分:0)
您可以在环境变量$?
如果执行的最后一个命令成功,则此变量将保留值0
。
我的猜测是这样的:
while true; do
$(command)
if [ $? -eq 0 ] ; then
exit
fi
done
请记住,如果在您的命令之后执行了任何操作,$?
的值将会更改。因此,只需确保在此处执行相关命令时,将$?
值保存在另一个变量中或立即检查。