如果在Linux上使用Bash和Curl标头是404,则写入文件

时间:2015-02-26 12:55:22

标签: bash curl

我有一个简单的脚本,它接受2个参数,一个URL和一个日志文件位置。从理论上讲,它应该从curl命令捕获头状态代码,如果它是404,则将URL附加到日志文件。知道失败的地方吗?

#!/bin/bash
CMP='HTTP/1.1 404 Not Found'                                                        # This is the 404 Pattern
OPT=`curl --config /var/www/html/curl.cnf -s -D - "$1"  -o /dev/null | grep 404`    # Status Response
if [ $OPT = $CMP ] 
then
    echo "$1" >> "$2"                                                               # Append URL to File
fi

1 个答案:

答案 0 :(得分:0)

您的测试是将$ CMP的值分配给$ OPT,而不是比较相等。尝试使用以下更简单的方法,该方法检查grep命令的返回代码,而不是在其输出中查找比较字符串:

#!/bin/bash
CMP='HTTP/1.1 404 Not Found'
if $(curl -s -I "$1" | grep "$CMP" >/dev/null 2>&1); then
    echo "$1" >> "$2"
fi