Zmiana polecenia
Inną opcją jest użycie polecenia Podstawienie . Zawijanie polecenia $()spowoduje uruchomienie polecenia i zastąpienie polecenia jego wynikiem.
cat $(find ./inhere -size 1033c 2> /dev/null)
stanie się
cat ./inhere/file1 .inhere/file3
Jest to mniej więcej równoważne użyciu starszego stylu zawijania poleceń za pomocą tykania wstecz:
cat `find ./inhere -size 1033c 2> /dev/null`
Więcej szczegółów z dokumentów powiązanych powyżej
Bash wykonuje rozwinięcie, wykonując polecenie w środowisku podpowłoki i zastępując podstawienie polecenia standardowym wyjściem polecenia, usuwając wszelkie końcowe znaki nowej linii. Osadzone znaki nowej linii nie są usuwane, ale mogą być usuwane podczas dzielenia słów. Podstawienie polecenia $(cat file)można zastąpić równoważnym, ale szybszym $(< file).
Gdy stosuje się w starym stylu postać backquote podstawienia, ukośnikowe zachowuje dosłownym znaczeniu, z wyjątkiem, gdy następnie $, `albo \. Pierwszy cudzysłów nie poprzedzony odwrotnym ukośnikiem kończy podstawianie poleceń. Podczas korzystania z $(command)formularza wszystkie znaki między nawiasami tworzą polecenie; żaden nie jest traktowany specjalnie.
Podstawienia poleceń mogą być zagnieżdżone. Aby zagnieżdżać się podczas korzystania z formularza z cudzysłowem, unikaj wewnętrznych cudzysłowów za pomocą odwrotnych ukośników.
Jeśli podstawienie pojawia się w podwójnym cudzysłowie, dzielenie słów i rozwijanie nazw plików nie są wykonywane w wynikach.
Zobacz inną odpowiedź na kilka dobrych przykładów użycia.