Из man curl
:
-w, --write-out <format>
Defines what to display on stdout after a completed and
successful operation.
<...>
redirect_url When an HTTP request was made without -L to
follow redirects, this variable will show the
actual URL a redirect would take you to.
(Added in 7.18.2)
Так что, вероятно, curl -w "%{redirect_url}" link1
даст вам первый url перенаправления.
Возможно, вам подойдет что-то вроде этого:
URL="http://google.com"
while [ -n "${URL}" ]
do
echo $URL
URL=$(curl -sw "\n\n%{redirect_url}" "${URL}" | tail -n 1)
done
Исторически исходный / bin / sh Bourne shell будет использовать $
в качестве обычного приглашения и #
для приглашения пользователя root (а csh будет использовать %
). Это упростило задачу скажите, работаете вы как суперпользователь или нет.
#
также является символом комментария, поэтому любой повторный ввод данных вслепую не запустит никаких реальных команд.
Более современные оболочки (например, ksh, bash) продолжите это различие $
и #
, хотя это менее важно, когда вы можете установить более сложные значения, такие как имя пользователя, имя хоста, каталог: -)
Традиция.
Стандарт POSIX гласит (выделено мной):
PS1
Эта переменная используется для интерактивных подсказок. Исторически сложилось так, что " суперпользователь "получил приглашение" # ". Поскольку привилегии не требуются {{1 }} чтобы быть монолитным, трудно определить, какие привилегии должны вызывать альтернативное приглашение. Однако достаточно влиятельному пользователю следует напомнить об этой возможности с помощью альтернативной подсказки.
См. Также этот ответ практически на тот же вопрос на форуме SuperUser.