В терминологии UNIX следует различать группы простых команд, конвейеры и списки. Мы уже знаем, что представляют собой простые команды. Кроме них, в ОС UNIX существуют еще два фундаментальных понятия – конвейеры и списки. Их необходимо уяснить для того, чтобы лучше разобраться в управляющих структурах.
Конвейер – это простая команда либо группа простых команд, разделенных вертикальной чертой.
Любая из перечисленных ниже строк представляет собой конвейер:
$ ls –l /bin /usr/bin
$ who | wc –l
$ a | b | c | d
$ ps
Конвейеры в данном случае разделяются символами новой строки.
В системе UNIX последовательность конвейеров называют списком, так что эти четыре строки образуют список и выступают в качестве элементов–конвейеров. Следующий список эквивалентен первому:
$ ls –l /bin /usr/bin;who|wc –l;a|b|c|d;ps
Список считается основной структурой в UNIX. Он может быть простым, как простая команда и настолько сложным, насколько вам удастся его таким сделать. Значение кода завершения, возвращаемое списком, равно соответствующему значению для последнего конвейера в нем. Важно осознавать различие между командой, конвейером и списком:
1) По простой команде выполняется одна программа.
2) Конвейер представляет собой последовательность простых команд, объединенных символом конвейера. Простейший конвейер – это любая простая команда.
3) Список состоит из конвейеров. Простейший список – это один конвейер, содержащий одну простую команду.
Код завершения конвейера равен значению кода его последней команды. Возвращаемое значение этого кода для команды или конвейера может исследоваться при управлении последовательностью выполнения в shell–программе.