【发布时间】:2015-02-25 12:09:57
【问题描述】:
我要做的是为文件夹中的每个数据集运行几个 hadoop 作业。我正在使用如下循环:
hdfs dfs -ls | grep -o '[0-9]*x[0-9]*$'|while read line;
do
echo "Operator: Spark KMeans, Dataset: $line"
./bspark.sh spark_kmeans $line 6 20
sleep 30s
done
某些作业可能会失败。如果出现错误,是否可以继续下一行?
【问题讨论】:
-
不确定你在问什么 - 如果“some_other_script.sh”中发生错误,while 将继续循环,除非你明确告诉它退出。
-
无论如何,循环将继续下一次迭代(除非您使用
set -e运行脚本,在这种情况下,请使用这个绝对重要的细节更新您的问题)。 -
@tripleee 我为许多数据集运行它,但由于某种原因它停止了,没有达到其他迭代。
-
由于外部循环是
while read,如果./bspark.sh消耗了标准输入的其余部分,则将终止循环。在失败的情况下会发生这种情况吗?
标签: linux bash shell unix ubuntu