Skrypty powłoki Bash #18 - exec
Wstęp
Dzień dobry, dziś przedstawię kilka informacji o komendzie exec. Serdecznie zapraszam.
Co to ten exec?
Komenda exec jest dość unikalną komendą, z powodu tego, że “kradnie” PID.
Jak zapewne wiecie, albo się domyślacie, każdy proces posiada własny identyfikator (PID). Odstępstwem od tej zależnoci jest właśnie komenda exec, która przejmuje PID procesu, który ją wywołał.

Co może być ciekawe, każdy argument przekazany do pierwszego programu zostaje przekazany tak samo do programu drugiego. To znaczy, że używając w drugim programie ${1} otrzymamy to samo co w programie pierwszym.
Opcje
Komenda exec ma 3 opcje, które możemy wykorzystać:
- -l | dodaje
-przed zerowym argumentem - -c | Powoduje, że komenda czyści wszystkie zmienne środowiskowe i uruchamia program w pustym środowisku


- -a | przekazuje nazwę jako zerowy argument
Błędy
Jeżeli komenda z jakiegoś powodu nie może zostać uruchomiona, wtedy sesja się kończy. Alternatywnie można dodać opcję execfail (shopt -s execfail)co spowoduje zwrócenie błędu zamiast zamknięcia sesji
Przekierowania wewnątrz skryptu
Ciekawym zastosowaniem dla komendy exec jest możliwość przekierowania deskryptorów do pliku wewnątrz skryptu.
Korzystając z exec 1> plik przekierujemy całe wyjście programu do pliku.
To samo dotyczy standardowego błędu. Wtedy korzystamy z exec 2>plik
Epilog
Na dziś to tyle.
Mam nadzieję, że dowiedziałeś/łaś się czegoś nowego, albo odświeżyłeś/łaś sobie wiedzę. Tak czy inaczej, serdecznie Ci dziękuję, za przeczytanie tego posta. Jeśli masz potrzebę o cos zapytać, kontakt znajdziesz w zakładce “O Mnie”. A teraz życzę miłego dzionka i smacznej kawusi :) Do widzenia.