mywget() ( echo log "wget $quiet \
userstring=${userstring:-unset} \
cookies=${cookies:-no} $@"
echo wget ${userstring:+--useragent="$userstring"} \
${cookies:+--${cookies}-cookies \
"$cookies_file" --keep-session-cookies} "$@"
) <<-PARAMS
${DQ=$(printf \042)}
${NL=
}
${userstring="${DQ}Mozilla/5.0 \
(Windows NT 6.1; WOW64; rv:27.0) \
Gecko/20100101 Firefox/27.0${DQ}"}
${cookies_file="/tmp/wget-cookies.txt"}
${cookies=save}
PARAMS
Por favor, me perdoe, mas tomei a liberdade de parameterizing
da sua função. Como os valores em PARAMS
só definem uma variável não definida, você pode substituir seus valores com muita facilidade - ele permite definir padrões saudáveis e ainda assim alterar valores por função ligue como quiser. Por exemplo, na função acima, eu configurei todos os valores para echo
e aqui está a saída quando executada como está:
log wget userstring="Mozilla/5.0 \
(Windows NT 6.1; WOW64; rv:27.0) \
Gecko/20100101 Firefox/27.0" \
cookies=save
wget --useragent="Mozilla/5.0 \
(Windows NT 6.1; WOW64; rv:27.0) \
Gecko/20100101 Firefox/27.0" \
--save-cookies /tmp/wget-cookies.txt \
--keep-session-cookies
Mas se eu definir "$userstring"
para NULL
:
userstring= mywget
log wget userstring=unset cookies=save
wget --save-cookies /tmp/wget-cookies.txt --keep-session-cookies
Ou:
cookies=load cookies_file=/some/other/cookie.file mywget
log wget userstring="Mozilla/5.0 \
(Windows NT 6.1; WOW64; rv:27.0) \
Gecko/20100101 Firefox/27.0" \
cookies=load
wget --useragent="Mozilla/5.0 \
(Windows NT 6.1; WOW64; rv:27.0) \
Gecko/20100101 Firefox/27.0" \
--load-cookies /some/other/cookie.file \
--keep-session-cookies
Ou:
cookies= userstring= mywget
log wget userstring=unset cookies=no
wget
Escrevi mais sobre parameter expansion
aqui e aqui .