|
Bourne Again Shell (bash) - стр.3
|
|
|
Перенаправление потока ошибок
При выполнении команд иногда происходят ошибки. Когда возникает ошибка, система выдает специальное сообщение. Как правило такие сообщения отображаются на экране вместе со стандартным выводом. Linux, однако различает стандартный ввод и сообщения об ошибках. Для переадресации стандартного потока ошибок предусмотрена специальная возможность. Все стандартные байтовые потоки в операциях переадресации можно обозначать номерами. Номера 0, 1 и 2 обозначают соответственно стандартный ввод, вывод и поток ошибок. Чтобы перенаправить стандартный поток ошибок, нужно поставить перед оператором переадресации вывода цифру 2.
$ cat nofile 2> myerrors
Чтобы переадресовать и стандартный вывод и поток ошибок, нужны две операции переадресации и два файла.
$ cat nofile 1> myfile 2> myerrors
Если требуется сохранять сообщения об ошибках в том же файле, нужно переадресовать стандартный поток ошибок на стандартный вывод. В bash можно ссылаться на стандартный поток по его номеру со знаком "&": &1 обозначает стандартный вывод. Операция переадресации 2>&1 переадресует стандартный поток ошибок на стандартный вывод. В результате стандартный вывод становится файлом назначения для стандартного потока ошибок.
$ cat nofile 1> myfile 2>&1
В данном примере стандартный вывод переназначается в файл myfile, туда же переназначается и стандартный поток ошибок. По умолчанию входным потоком операции >& является стандартный поток ошибок, а выходным потоком - стандартный вывод.
Конвейеры (pipelines)
Конвейер - это еще одно свойство shell, позволяющее связывать последовательность нескольких команд, введенных в одной строке, воедино. Вывод (выходные данные) первой команды используется в качестве ввода (входных данных) для второй команды и так далее, вывод последней команды в конвейере осуществляется на экран, либо перенаправляется в файл.
Символом конвейера является '".
$ cat mine wc
4 18 86 mine
Приглашения ко вводу (prompts)
В оболочке bash различают подсказки двух уровней:
Приглашение системы, ожидающей ввода команды. Оно является приглашением по умолчанию и обозначается символом "$". Если Вы зарегистрировались с именем root, подсказкой будет символ "#". Изменить подсказку первого уровня можно через переменную среды PS1.
PS1 ="подсказка ко вводу команды"
Приглашение системы, ожидающей завершения команды. По умолчанию обозначается символом ">". Для ее изменения используется переменная среды PS2.
РS2="подсказка к завершению команды"
Подсказки могут также содержать и специальные символы, в частности:
|
|
|
|
|