Respuestas:
Envuélvelo en sh -c
:
nohup sh -c 'wget "$0" && wget "$1"' "$url1" "$url2" > /dev/null &
Otros ya han respondido sobre nohup
. Como nota al lado práctico: Yo recomiendo hacer este tipo de cosas dentro de una screen
o tmux
sesión. De esa manera puede desconectarse, luego volver a conectarse más tarde y ver la salida y el resultado final.
Sería más simple así:
nohup sh -c "wget $url && wget $url2" > /dev/null 2>&1 &
Sin embargo, esto puede causar problemas si las URL contienen caracteres especiales, por lo que para una opción más segura puede usar:
nohup sh -c "wget \"$url\" && wget \"$url2\"" > /dev/null 2>&1 &
sh -c
es a través de argumentos separados, que pueden ser accesibles a través de los parámetros posicionales ( $0
, $1
, ...). No hay una manera fácil o sencilla de citar argumentos correctamente para el análisis de cadenas. Su intento de utilizar comillas dobles escapadas falla si en $url
sí contiene comillas dobles. Pruébelo a='problem"'; sh -c "echo \"$a\""
usted mismo y vea: debería obtener un error de sintaxis porque sh -c
intenta ejecutarse echo "problem""
.
$url
y $url2
se utilizan.