Forum Linux.pl

Programowanie => Bash, skrypty powłoki => Wątek zaczęty przez: w 2010-02-28, 20:51:25

Tytuł: Usuwanie katalogu z zawartością, ztworzenie go i skopiowenie do niego.
Wiadomość wysłana przez: w 2010-02-28, 20:51:25
Witam. Mam pytanie, a właściwie problem.
Czy za pomocą jednej linii można odpalić kilka procesów i otrzymać numer pid który zakończy się po zakończeniu całości.

Również potrzrbuje, aby całość dała się odpalić bez skryptu przez SSH exec.

chciałem użyć:

rm -rf dir1/ && mkdir dir1 && cp -r dir2/* dir/ & echo $!

ale muszę czekać na zakończenie mkdir.
Chodzi mi o to aby od razu dostać PID całości.

Pozdrawiam i dziękuję za wyrozumiałość
Tytuł: Usuwanie katalogu z zawartością, ztworzenie go i skopiowenie do niego.
Wiadomość wysłana przez: roobal w 2010-02-28, 21:18:32
Cytat: peku33
rm -rf dir1/ && mkdir dir1 && cp -r dir2/* dir/ & echo $!
Zamiast echo $! daj echo $$.

Pozdrawiam!
Tytuł: Usuwanie katalogu z zawartością, ztworzenie go i skopiowenie do niego.
Wiadomość wysłana przez: w 2010-02-28, 21:53:09
Żeby nie przewalać plików zastąpiłem te komendy na:

sleep 5 > /dev/null && sleep 10 >/dev/null & echo $$
I cały czas niestety trzeba czekać 15 sekund aż zakończy polecenie
Tytuł: Usuwanie katalogu z zawartością, ztworzenie go i skopiowenie do niego.
Wiadomość wysłana przez: roobal w 2010-03-01, 04:25:25
Cytat: peku33
Żeby nie przewalać plików zastąpiłem te komendy na:

sleep 5 > /dev/null && sleep 10 >/dev/null & echo $$
I cały czas niestety trzeba czekać 15 sekund aż zakończy polecenie
Ponieważ wszystko wykonywane jest w kolejności jakiej podałeś polecenia, dlatego wynik echo nie będzie podany w tym samym czasie tylko po wykonaniu wszystkich poprzednich czynności. Jak chcesz mieć na bieżąco podgląd PID procesu to musisz uruchomić jakiś monitor systemu.

Pozdrawiam!
Tytuł: Usuwanie katalogu z zawartością, ztworzenie go i skopiowenie do niego.
Wiadomość wysłana przez: chmooreck w 2010-03-01, 20:02:49
(sleep 5 > /dev/null && sleep 10 >/dev/null) & echo $$
Tytuł: Usuwanie katalogu z zawartością, ztworzenie go i skopiowenie do niego.
Wiadomość wysłana przez: w 2010-03-02, 17:37:01
Dzięki chmooreck - to jest to, czego szukałem!
Wpadłem na pomysł z nawiasami ale z kwadratowymi i nie działało.
Teraz wszystko działa, jak należy. Dziękuję za pomoc. Temat można zamknąć.

A!
Trzeba było zrobić tak:

(sleep 5 >/dev/null && sleep 10 >/dev/null) >/dev/null & echo $!