Установка Linux Red Hat 7.1

         

Подстановка команд



Подстановка команд

Еще один вариант применения подстановочных символов - подстановка команд, напоминающая конвейеризацию. При конвейеризации стандартный вывод одной команды переадресуется на стандартный ввод другой, при подстановке же он передается другой команде как аргумент или параметр.

Для примера, рассмотрим ситуацию, в которой необходимо сжать все файлы с расширением . 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.



Содержание раздела