Командна заміна
Інший варіант - використовувати командну заміну . Обгортання команди in $()
запустить команду та замінить команду її результатом.
cat $(find ./inhere -size 1033c 2> /dev/null)
стане
cat ./inhere/file1 .inhere/file3
Це більш-менш рівнозначно використанню старшого стилю загортання команд із зворотними кліщами:
cat `find ./inhere -size 1033c 2> /dev/null`
Більше деталей із документів, зв'язаних вище
Bash виконує розширення, виконуючи команду в середовищі додаткової оболонки і замінюючи підстановку команди стандартним висновком команди, при цьому будь-які затримані нові рядки видаляються. Вбудовані нові рядки не видаляються, але вони можуть бути видалені під час розбиття слів. Заміна команди $(cat file)
може бути замінена на еквівалент, але швидше $(< file)
.
Коли старий стиль форма лапки заміщення використовуються, зворотний слеш зберігає своє буквальне значення , за винятком , коли слід $
, `
або \
. Перша зворотна котировка, якій не передує зворотна косої риски, завершує заміну команди. При використанні $(command)
форми всі символи між дужками складають команду; ніхто не лікується спеціально.
Заміни команд можуть бути вкладені. Щоб укласти гніздо під час використання зворотної форми, уникайте внутрішніх зворотних котирувань із зворотними косами.
Якщо підміна з'являється в подвійних лапках, розбиття слів і розширення імені файлів на результатах не виконується.
Дивіться цю іншу відповідь на кілька хороших прикладів використання.