Basicamente, isso será algo como:
wget http://www.somesite.com/file.zip &
PID=$!
sleep 10
if [ 'ps ax | grep $PID' -ne '' ]
then
kill $PID
fi
Eu quero wget para (tentar) iniciar o download, então se não for feito após 10 segundos, eu quero desistir.
wget --timeout 10 http://url
Parece uma tentativa razoável, mas parece que apenas define --dns-timeout, --connect-timeout e --read-timeout. Assim, ele poderia esperar 9 segundos pelo dns, outro 9 pelo connect e continuar baixando para sempre, contanto que os dados continuem chegando em um ritmo constante (sem mais de 10 segundos de pausa).
Basicamente, isso será algo como:
wget http://www.somesite.com/file.zip &
PID=$!
sleep 10
if [ 'ps ax | grep $PID' -ne '' ]
then
kill $PID
fi
Isto não é exatamente o que você está perguntando, pois isso só deve fazer com que o Wget limite o tempo de espera se o download ficar ocioso por mais de 10 segundos:
wget --read-timeout= 10 http://url
Sobre a opção --read-timeout
, do Wget 1.13.4 Manual :
Set the read (and write) timeout to seconds seconds. The “time” of this timeout refers to idle time: if, at any point in the download, no data is received for more than the specified number of seconds, reading fails and the download is restarted. This option does not directly affect the duration of the entire download.