【发布时间】:2020-06-16 05:24:36
【问题描述】:
说,我们有一个代码:
xidel -s https://www.example.com -e '(//span[@class="number"])'
输出是:
111111
222222
333333
我可以在下面做这个吗?
for ((n=1;n<=3;n++))
do
a=$(xidel -s https://www.example.com -e '(//span[@class="number"]) [$n]')
b=$a+1
echo $b
done
我希望它会打印出 3 个编辑过的数字,如下所示:
111112
222223
333334
下载网页3次可能有点荒谬,但这里的原因是使用ForLoop将输出的每个值一个一个处理。
【问题讨论】:
-
您不想要一个下载整个网页 8 次的解决方案,只是为了打印 8 个不同的节点。您需要一个下载网页一次 并选择 8 个不同节点的解决方案。您应该做的第一件事是摆脱
for循环。 -
是的,我也是这么想的,但是在节点之后如何解决 [number] 的问题?
-
[position() <= 8]怎么样 -
这样吗?
(//span[@class="number"]) [position() <= 8]?我使用 for 循环的原因是处理每个输出值,而不仅仅是打印它。 -
@Tomalak 做到了,谢谢您的回复。帖子里已经有了自己的答案,最终我用forLoop来解决。