Как указывает @ user353852, у вас есть символ возврата каретки, выводимый из curl
, который проявляется только при попытке echo
любого символа после него. Пейджер less
показывает это как ^ M
Вы можете использовать sed
для удаления «управляющих символов», как в этом примере:
% test=$(curl -I "http://www.redirectURL.com/" 2>|/dev/null | awk '/^Location:/ { print $2 }' | sed -e 's/[[:cntrl:]]//') && echo "1..${test}..2"
1..http://www.redirecturl.com..2
Примечания
Я использовал awk
вместо вашего grep [...] | sed
подхода, сохранив один процесс.
Для меня curl
возвращает местоположение в строке, начинающейся с 'Location:' (с заглавной 'L'), если ваша версия действительно сообщает об этом с помощью строчной буквы 'l', то вам, возможно, придется изменить регулярное выражение соответственно.