我正在尝试使用wget
检查网址中是否存在文件,但是它提供的结果并不符合预期。
结果为Spider mode enabled. Check if remote file exists.
我正在使用的命令是:
cd $path
if [ $? -eq 0 ]; then
touch laber.txt
if [ $? -eq 0 ]; then
echo $key >> laber.txt
if [ $? -eq 0 ]; then
wget -S --spider $url/laber.txt 2>&1 | grep -q 'HTTP/1.0 200 OK'
if [ $? -eq 0 ]; then
echo OK;
else
rm -r laber.txt
echo FAIL;
fi
else
echo 'test';
fi
else
echo '3';
fi
else
echo '4';
fi
答案 0 :(得分:1)
简单的方法。想法是grep
在请求的URL上wget
的标头输出上,并获得操作的返回码。
grep
的 -q
将以静默模式运行,即如果找到,则不会将搜索字符串输出到stdout
。
一个花哨的单行可以做到这一点
#!/bin/bash
wget -S --spider $1 2>&1 | grep -q 'HTTP/1.0 200 OK' && echo SUCCESS || echo FAIL
<强> 确认: - 强>
$ ./script.sh www.go3463tgogle.com
FAIL
$ ./script.sh www.google.com
SUCCESS
传统方式: -
#!/bin/bash
wget -S --spider $1 2>&1 | grep -q 'HTTP/1.0 200 OK'
if [ $? -eq 0 ]; then
echo OK
else
echo FAIL
fi
<强> 确认: - 强>
$ ./script.sh www.go3463tgogle.com
FAIL
$ ./script.sh www.google.com
OK
您可以将任何实际的url
与脚本一起用于您的案例。