Muszę wykonać wiele poleceń za pomocą nohup
. Każde polecenie powinno zostać wykonane po poprzednim poleceniu.
Użyłem tego polecenia jako przykładu:
nohup wget $url && wget $url2 > /dev/null 2>&1 &
Jednak to polecenie nie działało.
Jakiego polecenia powinienem użyć w tym celu?
shell
command-line
nohup
Ehsan
źródło
źródło
Czy nie byłoby o wiele łatwiej stworzyć listę poleceń w osobnym pliku powłoki, np. Command.sh, bez żadnych przeszkód?
Następnie dzwonisz:
źródło
Inni już odpowiedzieli na temat
nohup
. Jako praktyczny marginesie: polecam robić tego typu rzeczy W ciąguscreen
lubtmux
sesji. W ten sposób możesz rozłączyć, a następnie połączyć ponownie później i zobaczyć wynik i wynik końcowy.źródło
Byłoby to prostsze:
Może to jednak powodować problemy, jeśli adresy URL zawierają znaki specjalne, więc dla bezpieczniejszej opcji możesz użyć:
źródło
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óbuja='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.