Odpowiedzi:
Zawiń to w sh -c
:
nohup sh -c 'wget "$0" && wget "$1"' "$url1" "$url2" > /dev/null &
Inni już odpowiedzieli na temat nohup
. Jako praktyczny marginesie: polecam robić tego typu rzeczy W ciągu screen
lub tmux
sesji. W ten sposób możesz rozłączyć, a następnie połączyć ponownie później i zobaczyć wynik i wynik końcowy.
Byłoby to prostsze:
nohup sh -c "wget $url && wget $url2" > /dev/null 2>&1 &
Może to jednak powodować problemy, jeśli adresy URL zawierają znaki specjalne, więc dla bezpieczniejszej opcji możesz użyć:
nohup sh -c "wget \"$url\" && wget \"$url2\"" > /dev/null 2>&1 &
sh -c
odbywa się za pomocą odrębnych argumentów, które mogą być dostępne za pośrednictwem parametrów pozycyjnych ( $0
, $1
...). Nie ma łatwego ani prostego sposobu poprawnego cytowania argumentów do parsowania łańcucha. Próba użycia podwójnych cytatów ze znakiem ucieczki kończy $url
się niepowodzeniem, jeśli sama zawiera podwójne cudzysłowy. Spróbuj a='problem"'; sh -c "echo \"$a\""
sam i przekonaj się - powinien pojawić się błąd składni, ponieważ sh -c
próbuje się uruchomić echo "problem""
.
$url
i $url2
są stosowane.