Podczas czytania dokumentacji [1], termin "jobspec" pojawia się kilka razy.bash: Co to jest oferta pracy
Co to jest jobspec?
[1] https://www.gnu.org/software/bash/manual/html_node/Job-Control-Builtins.html
Podczas czytania dokumentacji [1], termin "jobspec" pojawia się kilka razy.bash: Co to jest oferta pracy
Co to jest jobspec?
[1] https://www.gnu.org/software/bash/manual/html_node/Job-Control-Builtins.html
The job control section of Greg's Bash Guide opisano to w następujący sposób:
Specyfikacja pracy lub "jobspec" to określenie odnoszące się do procesów, które składają się na pracę. Specyfikacja może być:
%n
w celu oznaczenia numeru stanowiskan
.%str
aby odnieść się do zadania, które zostało uruchomione przez polecenie zaczynające się odstr
. Jest to błąd, jeśli istnieje więcej niż jedno takie zadanie.%?str
aby odnieść się do zadania, które zostało uruchomione poleceniem zawierającymstr
. Jest to błąd, jeśli istnieje więcej niż jedno takie zadanie.%%
lub%+
, aby odnieść się do bieżącego zadania: ostatnio uruchomionego w tle lub zawieszonego na pierwszym planie. fg i bg będą działać w tym zadaniu, jeśli nie zostanie podany żaden parametr roboczy.%-
dla poprzedniej pracy (zadanie, które było%%
przed bieżącym).
Gdy nie napisałeś czegoś samemu, należy to przypisać - nie tylko linkiem, ale prozą, która jasno określa, która treść jest oryginalna i nie jest oryginalną częścią twojej odpowiedzi. –
@Charles Duffy Got to. Odpowiednio edytuję. Dziękuję Ci. –
Nie jestem pewien, czy nazwałbym Bash Guide "dokumentacją", chociaż czasami myślę, że tak powinno być. =) –
Koncepcja, że nie ma nic wspólnego z programowaniem [i jakie pytania należy zatem na superuser], ponieważ jest to część funkcjonalności, która nie jest włączona w nieinteraktywnym użytkowania. :) –
@CharlesDuffy Czy jest to superuser, to pytanie otwarte. Elementy sterujące zadaniem są dostępne dla skryptu (np. Można wykonać 'wait% 1'). Przykład użycia: skrypt, który będzie transkodować wideo kilka tysięcy plików. Skrypt działa na 8 rdzeniowym komputerze. Skrypt wykorzystuje kontrolę zadań do zarządzania 8 procesami roboczymi, rozpoczynając nowy, gdy kończy się stary. Zwykle robię takie rzeczy w perlu, ale można to zrobić w bash. –
@CraigEstey, możesz zrobić 'wait% 1', jeśli' [[$ - = * m *]]] ("tryb monitorowania"), który jest domyślnie fałszywy w nieinteraktywnych powłokach (i niekompatybilny z innymi przydatnymi funkcjami, takie jak 'shopt-s lastpipe'). W przeciwnym razie musisz poczekać, aż PID zbierze status wyjścia, co jest normalną metodą dla skryptów takich jak ten, który sugerujesz powyżej ('start_encoder & encoder_pids + = ($!); ...; dla pid w" $ {encoder_pids [@]} "; czekaj" $ pid "|| echo" Enkoder nieudany ", done' lub taki). –