я написал следующий скрипт:Bash скрипт для проверки Перенаправление с CURL
#!/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, которые я хочу, чтобы проверить, используя мой для цикла; это выглядит следующим образом:
/источник/URI/здесь/Dest/URI/здесь
/source2/URI/здесь/dest2/URI/здесь
/source3/URI/здесь/dest3/uri здесь
Я пытаюсь использовать awk, чтобы назначить источник в $ 1 и пункт назначения до $ 2, который работает, если у меня есть 1 uri, но если у меня есть несколько, он, кажется, разделяет его части.
Код выглядит беспорядочно, потому что у меня есть случайные эхо-сигналы для целей отладки.
В конце скрипта (который прокомментирован) Я пытаюсь сравнить назначение перенаправления исходного URL-адреса с предполагаемым пунктом назначения.
Куда я иду не так?