GNU 并行回显作业编号



所以我有这个代码:parallel --jobs 5 curl --write-out '\n %{http_code}\n' --silent --head --output /dev/null https://example.com/id={} ::: {427240690783..427240690793}

返回 10 手 404。

如果 HTTP 响应代码为 200,我想回显当前作业迭代 ID,显示在 {} 中。我将如何回应这些?

抱歉,我是 GNU 的新手。

当命令变得如此复杂时,我通常会创建函数:

doit() {
curl --write-out 'n  %{http_code}n' --silent --head --output /dev/null https://example.com/id="$1"
}
export -f 
parallel doit ::: {427240690783..427240690793}

这是因为很容易测试函数是否对一个输入执行正确的操作。当它这样做时,你调用GNU Parallel来调用函数。

在这里,您可能想要类似的东西:

grep200() {
status=$(curl --write-out '%{http_code}' --silent --head --output /dev/null "$1"); 
if [ $status == 200 ] ; then
echo "$1";
fi;
}
export -f grep200
parallel grep200 https://example.com/id={} ::: {427240690783..427240690793}

相关内容

  • 没有找到相关文章

最新更新