Nowe posty

Autor Wątek: Jak zrobic oczekiwanie w skrypcie na zakończenie pobierania pliku.  (Przeczytany 3611 razy)

jaroo

  • Gość
Witam!

Chciałem napisać skrypt który by ściągal konkretny plik i później go rozpakowywał, a na końcu usuwał archiwum.

#!/bin/bash

cd /home/jarek
wget http://strona.pl/abc.tar.gz
tar zxvf abc.tar.gz
rm /home/jarek/abc.tar.gz

i problem polega na tym, ze skrypt nie czeka na zakończenie ściągania tylko rozpoczyna ściąganie i od razu próbuje rozpakować plik, który jeszcze nie zdążył się ściągnąć. Jak to rozwiązać?

arctgx

  • Gość
Jak zrobic oczekiwanie w skrypcie na zakończenie pobierania pliku.
« Odpowiedź #1 dnia: 2011-01-13, 23:06:05 »
Sprawdź czy w którymś z plików konfiguracyjnych wgeta (np. ~/.wgetrc, /etc/wgetrc) nie ma opcji background=on.

Możesz też dopisać w skrypcie polecenie type wget, by sprawdzić czy z jakiegoś powodu nie interpretuje polecenia wget jako aliasu z dodaną opcją -b. Byłoby tak, gdybyś odpalił skrypt z włączoną opcją expand_aliases (polecenie shopt expand_aliases wywołane ze skryptu zwróciłoby wartość "on").

P.S. Prócz opcji -b dla wgeta alias mógłby zawierać powłokowy znak & puszczenia zadania w tło. Wtedy odpowiedź brzmiałaby "wait" (z numerem zadania), ale chyba rozsądniej byłoby ominąć alias.

P.S.2 Jeśli nie chcesz tykać plików wgetrc, wpis background=on możesz chyba przesłonić, wywołując wgeta z opcją --no-background.