polecenie exec w Linuksie jest używane do wykonania polecenia z samego Basha. To polecenie nie tworzy nowego procesu, tylko zastępuje bash poleceniem do wykonania. Jeśli polecenie exec powiedzie się, nie powróci do procesu wywołującego.
składnia:
exec ]
opcje:
- c: służy do wykonania polecenia z pustym środowiskiem.
- nazwa: używana do przekazania nazwy jako argumentu zerowego polecenia.
- l: służy do przekazywania myślnika jako argumentu zerowego polecenia.
Uwaga: polecenie exec nie tworzy nowego procesu. Kiedy uruchamiamy polecenie exec z terminala, bieżący proces terminala jest zastępowany przez polecenie, które jest dostarczane jako argument dla polecenia exec.
polecenie exec może być użyte w dwóch trybach:
- Exec z poleceniem jako argumentem: w pierwszym trybie exec próbuje wykonać polecenie przekazując pozostałe argumenty, jeśli istnieją, do tego polecenia i zarządzając przekierowaniami, jeśli istnieją.
przykład 1:
przykład 2:
polecenie exec przeszukuje ścieżkę wymienioną w zmiennej $PATH, aby znaleźć polecenie do wykonania. Jeśli polecenie nie zostanie znalezione, polecenie exec oraz powłoka zakończy działanie w wyniku błędu.
- Exec bez polecenia: jeśli żadne polecenie nie zostanie dostarczone, przekierowania mogą być użyte do modyfikacji bieżącego środowiska powłoki. Jest to przydatne, ponieważ pozwala nam zmieniać deskryptory plików powłoki zgodnie z naszym życzeniem. Proces jest kontynuowany nawet po poleceniu exec, w przeciwieństwie do poprzedniego przypadku, ale teraz standardowe wejście, wyjście i błąd są modyfikowane zgodnie z przekierowaniami.
przykład:
tutaj polecenie exec zmienia standard z powłoki na plik tmp i tak wszystkie polecenia wykonywane po poleceniu exec zapisują swoje wyniki w tym pliku. Jest to jeden z najczęstszych sposobów korzystania z exec bez żadnych poleceń.