Wiem, że $!
przechowuje pid ostatniego procesu (w tle), ale co to %1
znaczy? Często widzę to razem kill
i ma taki sam efekt jak kill $!
. Czy ktoś może mi podpowiedzieć? (Tak małych terminów tak trudno jest wyszukiwać w Google: - /)
Wiem, że $!
przechowuje pid ostatniego procesu (w tle), ale co to %1
znaczy? Często widzę to razem kill
i ma taki sam efekt jak kill $!
. Czy ktoś może mi podpowiedzieć? (Tak małych terminów tak trudno jest wyszukiwać w Google: - /)
Odpowiedzi:
%
Oznaczenie odnosi się do pracy w liście zadań bieżącej powłoki, a zwraca PID. Spróbować help jobs
.
man kill
że strona man dla zewnętrznego pliku wykonywalnego kill, który nic nie mówi %
. Ale bash ma również wbudowaną kill
funkcję, która jako wbudowana ma pierwszeństwo przed zewnętrzną kill
, i help kill
mówi nam, że możemy używać specyfikacji zadań z wbudowaną kill
, a możliwość korzystania z tych specyfikacji jest jednym z powodów, dla których jest to wbudowany
To, czego chcesz od Google man bash
Istnieje wiele sposobów odwoływania się do zadania w powłoce. Znak% wprowadza nazwę pracy. Numer zadania n może być określany jako% n. Zadanie może być również przywołane przy użyciu prefiksu nazwy użytej do jego uruchomienia lub przy użyciu podłańcucha, który pojawia się w jego wierszu poleceń. Na przykład% ce odnosi się do zatrzymanej pracy ce. Jeśli prefiks pasuje do więcej niż jednego zadania, bash zgłasza błąd. Z drugiej strony użycie%? Ce odnosi się do każdego zadania zawierającego ciąg ce w wierszu poleceń. Jeśli podłańcuch pasuje do więcej niż jednego zadania, bash zgłasza błąd. Symbole %% i% + odnoszą się do pojęcia powłoki bieżącego zadania, które jest ostatnim zadaniem zatrzymanym, gdy było na pierwszym planie lub rozpoczęło się w tle. Do poprzedniego zadania można się odwołać za pomocą% -. Gdy jest tylko bieżąca praca,% - odnosi się do pojęcia powłoki bieżącego zadania. W danych wyjściowych dotyczących zadań (np. Danych wyjściowych polecenia zadań) bieżące zadanie jest zawsze oznaczone znakiem +, a poprzednie zadanie znakiem -. Pojedynczy% (bez towarzyszącej specyfikacji zadania) odnosi się również do bieżącego zadania.
Wystarczy nazwać zadanie, aby przenieść je na pierwszy plan:% 1 jest synonimem „fg% 1”, przenosząc zadanie 1 z tła na pierwszy plan. Podobnie „% 1” wznawia zadanie 1 w tle, co odpowiada „bg% 1”.
TL; DR: %1
jest numerem zadania 1.