Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 如何检查PDF文件是否在线?_Bash - Fatal编程技术网

Bash 如何检查PDF文件是否在线?

Bash 如何检查PDF文件是否在线?,bash,Bash,我想迭代一些pdf文件,从到N.pdf(将1添加到basename),并在文件不在线时停止循环。下面是我认为最接近解决方案的代码,但实际上有很多东西似乎无法正常工作。while条件中的命令会导致语法错误f.x #!/bin/bash path=http://dip21.bundestag.de/dip21/btp/18/ n=18001 while [ wget -q --spider $path$n.pdf ] do n=$(($n+1)) done echo $n HST-我的问

我想迭代一些pdf文件,从到N.pdf(将1添加到basename),并在文件不在线时停止循环。下面是我认为最接近解决方案的代码,但实际上有很多东西似乎无法正常工作。while条件中的命令会导致语法错误f.x

#!/bin/bash

path=http://dip21.bundestag.de/dip21/btp/18/
n=18001

while [ wget -q --spider $path$n.pdf ]
do
  n=$(($n+1))
done

echo $n

HST-我的问题不是调试这个特定的代码-它主要用于说明我想做什么。同样,我也希望有一个使用循环和wget的解决方案。

如果您想测试命令的成功,不要将它放在用于测试条件表达式值的
[

while wget -q --spider $path$n.pdf
do
    ...
done

为什么在
[…]
中有一个命令行?很好!我以为你必须使用这些括号。有时在编写条件语句时似乎需要这些括号。顺便问一下,有更好的(更短、更漂亮)吗如何做到这一点?这对我来说似乎很合理。如果他们有一个索引文件,你可以使用递归wget下载它和它链接到的所有文件。