Подстановка команд
Подстановка команд
Еще один вариант применения подстановочных символов -
подстановка команд,
напоминающая конвейеризацию. При конвейеризации стандартный вывод одной команды переадресуется на стандартный ввод другой, при подстановке же он передается другой команде как аргумент или параметр.
Для примера, рассмотрим ситуацию, в которой необходимо сжать все файлы с расширением . bak. Список этих файлов можно получить, введя команду
$ find / -name '*.bak' -print
Этой же командой с флажком exec можно воспользоваться для сжатия всех файлов.
$ find / -name '*.bak r -exec gzip {} \;
Другой вариант - подстановка команды, как в следующем примере.
$ gzip "find / -name '*.bak' -print"
Здесь команда find заключена в обратные одинарные кавычки, указывающие, что ее результаты должны использоваться как часть командной строки - в данном случае, как аргументы команды gzip.
Существует альтернативная форма этой конструкции - без обратных кавычек:
$ gzip $(find / -name \*.bak -print)
Основное различие между двумя конструкциями - смысл обратной косой (\) в первой из них. Этот смысл сохраняется, если не указаны символы "$","'" или "\".
Примечание
Приведенный перечень подстановочных символов оболочки Bash не полон. Полный список, наряду с подробным описанием, можно найти на странице руководства Bash. Однако и то, что мы описали, рбеспечивает немалые возможности. Если вам понадобятся дополнительные средства- связанные с подстановочными символами, обратитесь к странице руководства, воспользовавшись командой man bash.
Содержание раздела