Respostas:
Embrulhe-o em sh -c
:
nohup sh -c 'wget "$0" && wget "$1"' "$url1" "$url2" > /dev/null &
Outros já responderam nohup
. Como uma observação prática: eu recomendo fazer esse tipo de coisa em uma screen
ou tmux
sessão. Dessa forma, você pode desconectar e reconectar mais tarde e ver a saída e o resultado final.
Seria mais simples assim:
nohup sh -c "wget $url && wget $url2" > /dev/null 2>&1 &
No entanto, isso pode causar problemas se os URLs contiverem caracteres especiais, portanto, para uma opção mais segura, você pode usar:
nohup sh -c "wget \"$url\" && wget \"$url2\"" > /dev/null 2>&1 &
sh -c
é através de argumentos separados, que podem ser acessados através dos parâmetros de posição ( $0
, $1
...). Não há uma maneira fácil ou simples de citar argumentos corretamente para análise de string. Sua tentativa de usar aspas duplas escapadas falhará se $url
ela própria contiver aspas duplas. Tente a='problem"'; sh -c "echo \"$a\""
você mesmo e veja - você deve receber um erro de sintaxe porque sh -c
tenta executar echo "problem""
.
$url
e $url2
ser usado.