2.17. Łączenie dwóch programów z wykorzystaniem danych wyjściowych jako parametrów
Problem
Co zrobić, jeśli jeden z programów, do których chcielibyśmy skierować potok, nie obsługuje tego mechanizmu? Przykładem może tu być konieczność usunięcia plików za pomocą polecenia rm
, który wymaga zdefiniowania plików do usunięcia jako parametrów instrukcji:
$ rm mój.java twój.c ich.*
Instrukcja rm
nie odczytuje informacji ze standardowego strumienia wejściowego, więc niemożliwe jest wykonanie polecenia:
find . –name '*.c' | rm
Skoro instrukcja rm
pobiera nazwy plików tylko w formie parametrów wiersza poleceń, to w jaki sposób można wstawić dane wynikowe wykonanej wcześniej instrukcji (np. echo
lub ls
) do wiersza poleceń?
Rozwiązanie
Należy wykorzystać mechanizm ...
Get Bash. Receptury now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.