MAVMAV Опубликовано 30 апреля, 2007 Жалоба Поделиться Опубликовано 30 апреля, 2007 Уважаемы гуру.. подскажите как решить практикум по програмированию.Сейчас скачиваю USB Knoppix 5.1 можно ли на нем сделать задание? Подскажите хотя бы часть остальное попробую сделать по аналогии зарание спасибо всем помогающим Требуется реализовать программу MyShell, которая будет выполнять (интерпретировать) некоторое подмножество команд оболочки shell, заданное ниже. «Побочный» эффект выполнения уже обработанных команд (например, перенаправление ввода-вывода) не должен влиять на выполнение последующих команд. Входной язык: • конвейер pr1 | рг2 | ... | prN для произвольного N>=2; считать, что аргументов у pr1 (1<= I<= N) нет (но возможна реализация с произвольным числом аргументов у каждого процесса) • перенаправление ввода-вывода <, >, » (в том числе для pr1 и prN в конвейере) Например, pr < data > res pr1 | pr2 > res.txt • запуск в фоновом режиме & (в том числе и для конвейеров) Например, pr arg1 arg2 & pr1 | pr2 | рг3 > res.all & • последовательное выполнение команд pr1; pr2 ; ... ;prN pri выполняются как если бы они были переданы интерпретатору по одной команде в строке. При реализации учитывайте, что приоритет операции I выше, чем приоритет операции ; однако возможно использование скобок: например, (pr1; рг2) | рг3, что приведет к конкатенации результатов работы pr1 и рг2, которые будут переданы процессу рг3 как входные данные. • pri && рг2 Выполнить pr1; в случае успеха выполнить рг2 • pri || рг2 Выполнить pr1; в случае неудачи выполнить рг2 В качестве процессов для интерпретации можно использовать процессы UNIX, такие как grep, cat, mv, cp, we, ps, Is, emp, sort, tail и другие. Вариант усложненный (повышение оценки на 0,5 балла): • Дополнительно реализовать выполнение скриптов MyShell - при передаче в командной строке имени файла, программа должна интерпретировать содержимое файла. 1. Написать программу, моделирующую команду SHELL: ( здесь pr1 - имена процессов, argj - аргументы процессов, f.dat - файл входных данных, f.res - файл результатов; в каждом из процессов pr1 использован стандартный ввод-вывод) Аргументы, необходимые этой программе, задаются в ко¬мандной строке. 1). pr1 | рг2 | ргЗ 2). pr1 | pr2 > f.res 3). pr1 arg1l arg12 < f.dat | pr2 arg21 agr22 4). pr1 < f.dat > f.res 5). pr1 < f.dat | pr2 | pr3 > f.res 6). pr1 | pr2 » f.res 7). prl;pr2 | pr3 > f.res 8). ((pr1 | pr2); pr3) | pr4 9). pr1 argl < f.dat; pr2 | pr3 »f.res 10). prl;pr2; ... ;prn 11). prl;pr2; ... ;prn & 12). pr1 | pr2 | ... | prn 13). pr1 |pr2 I ... I prn & 2. Написать программу, моделирующую команду SHELL pr1 && pr2 ( выполнить pr1; в случае успешного завершения pr1 выполнить рг2, иначе завершить работу ). Имена процессов задаются в ко¬мандной строке. 3. Написать программу, моделирующую команду SHELL pr1 || pr2 ( выполнить pr1; в случае неудачного завершения pr1 выпол¬нить рг2, иначе завершить работу ). Имена процессов задаются в командной строке. 4. Написать программу, моделирующую выполнение команды (prl; pr2) | ргЗ > f.res (конкатенация результатов работы процессов pr1 и рг2 передается в качестве входных данных процессу рг3; результаты его работы перенаправляются в файл f.res; в процессах prl, pr2 и рг3 использован стандартный ввод-вывод). 1). аргументы задаются в командной строке в виде pr1 pr2 рг3 f.res 2). команда (prl; pr2)|pr3>f.res вводится как строка во время работы программы. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
AccessD Опубликовано 30 апреля, 2007 Жалоба Поделиться Опубликовано 30 апреля, 2007 Цитата: Сейчас скачиваю USB Knoppix 5.1 можно ли на нем сделать задание? можно Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
MAVMAV Опубликовано 3 мая, 2007 Автор Жалоба Поделиться Опубликовано 3 мая, 2007 knoppix скачал ,запустил не подскажете как дальше скрипт писать.. алгоритм обработки может сам придумаю..а вот как скрипт написать,как его редактировать и сохранят ? Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
AccessD Опубликовано 3 мая, 2007 Жалоба Поделиться Опубликовано 3 мая, 2007 в любом редакторе, напр. Kate. Статей и книг по скриптописательству полно в инете, спросите гугла Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
MAVMAV Опубликовано 4 мая, 2007 Автор Жалоба Поделиться Опубликовано 4 мая, 2007 пробую.. можно хотя бы какой нит пример показать ка делается? потому как я долго еще буду вникать в премудрости nix а пример бы помог бы понять как считываються данный с клавиатуры и как передаються shell на исполнение Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.