Электронный учебник:


Курс лекций:


Дополнительно:

Практикум:



Наши хостеры:

HP Designjet Z3200ps 44 inch Printer

--------------------------

Файловая система BSD UNIX

Перенаправление ввода/вывода

Каждая запущенная из командного интерпретатора программа получает три открытых потока ввода/вывода:

Стандартный ввод

Стандартный вывод

Стандартный вывод ошибок

По умолчанию все эти потоки ассоциированы с терминалом. Т.е. любая программа, использующая только стандартные потоки, будет ожидать ввода с клавиатуры терминала, весь вывод этой программы, включая сообщения об ошибках, будет происходить на экран терминала. Shell позволяет перенаправлять  потоки ввода/вывода. Можно подавить вывод сообщений об ошибках, установить ввод или вывод из файла и даже передать вывод одной программы на ввод другой.

Ш File – перенаправление стандартного потока вывода в файл

>> Fail – добавление в fail данных из стандартного потока вывода.

< Fail – получение стандартного потока ввода из файла в fail

P1| P2 – передача стандартного потока вывода программы P1в поток ввода  P2.

N > fail – переключение потока вывода из файла с дескриптором N в файл fail

N2 > fail – тоже, но записи добавляются в файл fail.

Стандартным потокам ввода, вывода и вывода ошибок присваиваются десктипторы – числовые значения, являющиеся указателями на соответствующий поток. Они, соответственно, равны 0,1 и 2. Перенаправлять потоки можно, используя эти числовые значения.

Например, чтобы подавить вывод ошибок, можно использовать следующую запись:

$ run 2 > /dev/ nul (псевдо устройство, удаляющее все введенные в него символы)  

Все команды, которые вводятся в строке приглашения Shell, относятся к одной из следующих категорий:

1.     Встроенные функции

2.     Функции Shell, определенные пользователем

3.     Внешние программы и утилиты

Запуск встроенной функции не требует порождения нового процесса, поскольку эта функция реализована в самой программе Shell.

Важнейшие встроенные функции Shell:

: -  пустая команда. Она удобна для создания бесконечных циклов:

while:

do

……

done 

 break [N] – производит выход из цикла for или while.

Если параметр

break [N]

производит выход из цикла for или while.

Если параметр указан, происходит выход из и выполненных циклов.

cd [dir]

переход в каталог dir

echo[string]

строка string выводиться на терминал

exec run-me

выполняем программу runme

exit

завершает работу интерпретатора

jobs

вывод списка текущих заданий

pwd

выводит имя текущего каталога

return

осуществляет вывод и зфункци

set

выводит список определенных переменных

test

вычисляет условное выражение

times

выводит суммарное время использования процессора программами

type name

показывает как name будет интерпретироваться Shell

и ряд других.

Синтаксис функции определенный пользователем имеет вид:

function ( )

{

  command 1

  command 2

   ………..

     }

т.е. телом функции является

обычный

sprint shell

таким образом, пользователь может определить функцию команд­ного интерпретатора и использовать ее как встроенную функцию Shell.

предыдущаяследующая