-
Notifications
You must be signed in to change notification settings - Fork 0
01. shell
Идентификатор задачи: 01 Дедлайн: 25.09.2016
Цель: Разработать Unix-like shell
Описание: Скачать шаблон приложения интерпретатора команд из репозитария (samples/sh.c) и реализовать поддержку следующих функций:
- выполнение команд (запуск исполняемых файлов по имени)
- реализация перенаправления ввода-вывода
- реализация каналов
Компиляция: Все операции по сборке приложения поместить в Makefile, содержащий 2 цели "build", "clean". Первая собирает приложение с именем sh, вторая удаляет все артифакты, кроме исходных текстов.
Проверка: для проверки работоспособности можно использовать следующий алгоритм. Поместить набор команд в текстовый файл, например cmd.sh:
ls > y
cat < y | sort | uniq | wc > y1
cat y1
rm y1
ls | sort | uniq | wc
rm y
Запуск sh < cmd.sh
должен заканчиваться успехом.
Требования к коду: исходный код должен быть оформлен единообразно в соответствии с выбранным (самостоятельно) стилем и содержать адекватное количество комментриев.
Дополнительные функции для реализации
- (*) поддержка списков команд, разделенных символом ";"
- (*) поддержка вложенных shell внутри символов "(" ")"
- (*) реализация запуска команд в бакграунде, поддержка "&" и "wait"