Выполнять чтение из стандартного ввода до появления строки, идентичной строке text (строка может храниться в переменной окружения). Ввод обычно осуществляется с клавиатуры. Программы, с которыми чаще всего используется этот синтаксис, - cat, echo, ex и sed. Если вводимый текст text заключается в кавычки, то в нем не подставляются значения переменных, результаты работы команд и т. п.
n>file
Перенаправить файловый дескриптор п в file
n<file
Присвоить файлу file файловый дескриптор п
>&n
Дублировать стандартный поток вывода в файловый дескриптор п
<&n
Дублировать стандартный поток ввода из файлового дескриптора п
&>file
Перенаправить стандартный поток вывода и стандартный поток ошибок в файл file
<&-
Закрыть стандартный поток ввода
>&-
Закрыть стандартный поток вывода
n>&-
Закрыть вывод из файлового дескриптора п
n<&-
Закрыть ввод из файлового дескриптора п
Примеры
$ cat parti > book
$ cat part2 part3 » book
$ mail tim < report
$ grep Chapter part* 2> error_file
$ sed ' s/~/XX /' « END_ARCHIVE
This is often how a shell archive is "wrapped",
bundling text for distribution. You would normally
run sed from a shell program, not from the command line.
END_ARCHIVE
XX This is often how a shell archive is "wrapped", XX bundling text for distribution. You would normally
XX run sed from a shell program, not from the command line.
Для того чтобы перенаправить стандартный поток вывода в стандартный поток ошибок, можно использовать следующую команду:
$ echo "Usage error: see administrator" 1>&2
Следующая команда записывает результат (список файлов) в файл filelist, a сообщения об ошибках (файлы, к которым нет доступа) - в файл no_access:
$ find / -print > filelist 2>no_aocess
Сопроцессы
Сопроцессы являются уникальной возможностью интерпретатора bash и в других интерпретаторах не встречаются.
Синтаксис
Действие
cmdl \ cmd2 |&
Сопроцессы; выполнять конвейерную последовательность в фоновом режиме. Командный интерпретатор создает двунаправленный конвейер, позволяя перенаправлять одновременно стандартный
ввод и стандартный вывод.
read -p var
Читать ввод сопроцесса в переменную var.
print -p string
Передать строку string сопроцессу.
cmd <&p
Вводом для команды cmd являются данные сопроцесса.
cmd >&p
Вывод команды cmd перенаправляется сопроцессу.
Примеры
cat memo
Sufficient unto the day is
A word to the wise.
ed - memo |&
print -p /word/
read -p search
print "Ssearch"
A word to the wise.
Отобразитьсодержимое файла
Запустить сопроцессы Послать команду ed сопроцессу Прочитать вывод ed в переменную search Отобразить строку на стандартный вывод
Переменные
Переменные предваряются символом $ и могут заключаться в фигурные скобки. Значения переменным можно присваивать с помощью знака равенства (=), пробелы по обе стороны которого не допустимы.
$ TMP=temp.file
<< Назад В начало Далее >> |