如何检查 url 中的文件是否存在



我正在尝试检查 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来为您的案例采用。

相关内容

  • 没有找到相关文章