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ł.

exec1

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

exec2

exec3

  • -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.