Основы программирования в Linux
Шрифт:
В предыдущем примере стандартный вывод перенаправлен в файл с помощью оператора
Для
добавит вывод команды
Для перенаправления стандартного потока ошибок перед оператором
Предположим, что вы хотите применить команду
Команда
поместит вывод и информацию об ошибке в разные файлы.
Если вы предпочитаете собрать оба набора выводимых данных в одном файле, можно применить оператор
поместит свой вывод и стандартный поток ошибок в один и тот же файл. Обратите внимание на порядок следования операторов. Приведенный пример читается как "перенаправить стандартный вывод в файл killerr.txt, а затем перенаправить стандартный поток ошибок туда же, куда и стандартный вывод". Если вы нарушите порядок, перенаправление выполнится не так, как вы ожидаете.
Поскольку обнаружить результат выполнения команды
Перенаправление ввода
Также как вывод вы можете перенаправить ввод. Например,
Понятно, что это тривиальнейший пример для ОС Linux; команда
Каналы
Вы можете соединять процессы с помощью оператора
Если не применять каналы, придется использовать несколько шагов, подобных следующим:
Соединение процессов каналом даст более элегантное решение:
Поскольку вы, вероятно, захотите увидеть на экране вывод, разделенный на страницы, можно подсоединить третий процесс,
Практически нет ограничений на допустимое количество процессов. Предположим, что вы хотите видеть все имена выполняющихся процессов, за исключением командных оболочек. Можно применить следующую командную строку:
В ней берется вывод команды
Как видите, это гораздо более элегантное решение, чем строка из отдельных команд, каждая со своими временными файлами. Но в этом случае имейте в виду следующее. Если строка состоит из команд, файл вывода создается или записывается сразу, как только сформирован набор команд, поэтому в строке из нескольких команд никогда не используйте дважды одно и то же имя файла. Если вы попытаетесь сделать что-то подобное:
то в результате получите пустой файл, т.к. вы перезапишете файл mydata.txt, прежде чем прочтете его.
Командная оболочка как язык программирования
Теперь, когда вы увидели некоторые базовые операции командной оболочки, самое время перейти к реальным программам оболочки. Есть два способа написания таких программ. Вы можете ввести последовательность команд и разрешить командной оболочке выполнить их в интерактивном режиме или сохранить эти команды в файле и затем запускать его как программу.
Интерактивные программы
Легкий и очень полезный во время обучения или тестирования способ проверить работу небольших фрагментов кода — просто набрать с клавиатуры в командной строке сценарий командной оболочки.
Предположим, что у вас большое количество файлов на языке С, и вы хотите проверить наличие в них строки
Золото Вильгельма (сборник)
Проза:
современная проза
рейтинг книги
Василий Аксенов. Сентиментальное путешествие
Остров Аксенов
Документальная литература:
биографии и мемуары
прочая документальная литература
рейтинг книги
Имперская трилогия (Трилогия)
82. В одном томе
Фантастика:
боевая фантастика
рейтинг книги
Дважды одаренный. Том IV
4. Дважды одаренный
Фантастика:
городское фэнтези
альтернативная история
аниме
рейтинг книги
Монстр из прошлого тысячелетия
5. Соприкосновение миров
Фантастика:
попаданцы
аниме
фэнтези
рейтинг книги
Сурск. Попаданец на рыбалке. Пенталогия
Попаданец на рыбалке
Фантастика:
фэнтези
попаданцы
рейтинг книги
Второгодка. Книга 4. Подавать холодным
4. Второгодка
Фантастика:
героическая фантастика
альтернативная история
сказочная фантастика
рейтинг книги
Король
12. Братство черного кинжала
Фантастика:
ужасы и мистика
рейтинг книги
"Фантастика 2024-107". Компиляция. Книги 1-21
Фантастика 2024. Компиляция
Фантастика:
фэнтези
героическая фантастика
боевая фантастика
рпг
попаданцы
альтернативная история
аниме
рейтинг книги
Каждый за себя
Фантастика:
боевая фантастика
рейтинг книги
Конец главы
рейтинг книги