Przejdź do treści

Centrum Kształcenia Zawodowego i Ustawicznego w Mrągowie

Bash: Command substitution

środa,

Bash: Command substitution

Bash: Command substitution

Podstawieniem poleceń (command substitution) w Bashu jest mechanizm, który pozwala na wykorzystanie wyjścia jednego polecenia (lub grupy poleceń) jako argumentu innego polecenia. Jest to bardzo przydatne, kiedy wystąpi potrzeba manipulowania danymi generowanymi przez różne programy. W Bashu istnieją dwa sposoby na realizację podstawienia poleceń.

Backticks

Użycie znaków ` ` (backticks) to starsza metoda, która może być mniej czytelna, zwłaszcza w skomplikowanych skryptach, ze względu na trudność w odróżnieniu backticków od apostrofów. Przykład:

echo `date`

Powyższe polecenie wykorzystuje date do wygenerowania bieżącej daty i czasu, a następnie echo wyświetla tę wartość na ekranie.

Konstrukcja $(…)

Użycie konstrukcji $(...) jest nowszą, zalecaną metodą, która jest bardziej elastyczna i zwiększa czytelność, szczególnie w przypadku zagnieżdżania. Przykład:

echo $(date)

Tutaj działanie jest identyczne jak w poprzednim przykładzie, ale użycie $(...) sprawia, że składnia jest bardziej przejrzysta, a także pozwala na łatwe zagnieżdżanie poleceń.

Przykład zagnieżdżonego użycia $(...)

Załóżmy, że chcemy znaleźć plik, który został ostatnio zmodyfikowany w katalogu /etc, a następnie wyświetlić datę jego ostatniej modyfikacji. Możemy to zrobić, korzystając z zagnieżdżonego podstawienia poleceń:

echo $(ls -lt $(find /etc/* -type f) | head -n 1)

W tym przykładzie:

  • $(find /etc/* -type f) znajduje wszystkie pliki w katalogu /etc. Wynik tego polecenia (ścieżki do plików) jest następnie używany jako argument dla ls -lt, które sortuje te pliki według daty modyfikacji, wyświetlając najpierw najnowsze.
  • head -n 1 ogranicza wyjście do pierwszego wiersza, czyli do najnowszego pliku.
  • echo $(...) wyświetla wynik końcowy, czyli informacje o najnowszym pliku.

Ważne jest, aby pamiętać, że zagnieżdżanie poleceń powinno być stosowane z rozwagą, ponieważ zbyt duża ilość zagnieżdżeń może sprawić, że skrypt stanie się trudny do zrozumienia i utrzymania. Jednak w prostych przypadkach, jak ten wyżej, zwiększa to czytelność i pozwala na wykonanie skomplikowanych operacji w jednej linii.

Artykuł: Slackware

Slackware

Artykuł: Virtual Desktop Infrastructure

Virtual Desktop Infrastructure

Artykuł: Wirtualizacja: Overcommitment

Wirtualizacja: Overcommitment

Artykuł: Marc Andreessen

Marc Andreessen

Artykuł: Zakończenie staży

Zakończenie staży

Nasze technikum

Technik informatyk

Szkoły dla dorosłych

Nasza szkoła

Pełna oferta edukacyjna

Oferta szkoły