我正在尝试检查 url 中的文件是否存在 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
简单的方法。想法是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
来为您的案例采用。