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.