2015-05-19 46 views
3

我写了下面的脚本:bash脚本来检查重定向,卷曲

#!/bin/bash 

host="www.myhost.com" 

IFS=$" " ; 

for x in $(cat foo.list) ; do 
     srcURI=$(echo $x | awk '{print $1}') ; 
     destURI=$(echo $x | awk '{print $2}') ; 
     srcCURL=$(curl -s -H "Host: ${host}" -I "qualified.domain.local${srcURI}" |grep "Location:" | tr -d [[:cntrl:]]) ; 
     destCURL=$(curl -s -H "Host: ${host}" -I "qualified.domain.local${srcURI}" |grep "301" | tr -d [[:cntrl:]]) ; 

     echo " " 
     echo " "   
     echo -e "srcURI = ${srcURI}" 
     echo -e "destURI = ${destURI}" 
     echo -e "srcCURL = ${srcCURL}" 
     echo -e "destCURL = ${destCURL}" 
     echo -e "Host:DestURI = Location: http://${host}${destURI}" 
     echo -e "Host:srcCURL = ${srcCURL}" 
     echo " " 
     echo " " 
#  if [[ ${srcCURL} == "Location: http://${host}${destURI}" ]] ; then 
#    echo -e "Good"; 
#  else 
#    echo -e "Bad"; 
#  fi 
done 

我有一个名为的foo.list文件,它具有的URI我想用检查列表我的for循环;它看起来像这样:

/源/ URI /位置/目标/ URI /这里

/源2/URI /位置/ dest2/URI /这里

/source3/URI /位置/ dest3 /这里的uri

我想使用awk将源代码分配给$ 1,并将目标分配给$ 2,如果我有1个uri,则工作正常,但如果我拥有多个,它似乎是chomp的一部分。

该代码看起来很乱,因为我已经得到了用于调试目的的随机回声。

在脚本结尾处(已注释掉),我试图将源URL的重定向目标与可疑目标进行比较。

我哪里错了?

回答

3

不知道我得到了所有的细节的权利,但我会尝试这样的事:

while read -r src dst; do 
    redir="$(curl -q -s -S -o /dev/null -w '%{redirect_url}' qualified.domain.local"${src}")" 
    if [ $? -eq 0 -a x"$redir" = qualified.domain.local"${dst}" ]; then echo Good; else echo Bad; fi 
done <foo.list 
2

感谢lcd047!

使用你放什么我有以下几点:

#!/bin/bash 

read -p "Enter the host: " host 

while read -r src dst; do 
     srcCURL=$(curl -s -H "Host: ${host}" -I "some.domain.local${src}" |grep "Location:" | tr -d [[:cntrl:]]) ; 
     dstURL="Location: http://${host}${dst}" 

     #echo ${srcCURL} 
     #echo ${dstURL} 

     if [ $? -eq 0 -a "${srcCURL}" == "${dstURL}" ]; then 
       echo -e "[\033[0;32mOK\033[0m]: ${src} \033[0;1mredirects to\033[0m ${dst}"; 
     else 
       echo -e "[\033[0;31mERROR\033[0m]: ${src} does not redirect to ${dst}"; 
     fi 
done <foo.list 

它完美的作品!