написанные программы / задание №1 — 3 / script
.odt
Лабораторная работа № 1
Интерактивную программу на языке shell
Работу выполнил:
студент гр. 2100
Голубцов Евгений
2009
Лабораторная работа #1
Написать интерактивную программу на языке shell, которая выводит список действий с номерами и ожидает ввода номера пункта, после чего начинает выполнение заданных в этом пункте команд. Для команд удаления необходимо запрашивать подтверждение дополнительно. Организовать обработку ошибок, например, при отсутствии удаляемого файла, для чего перенаправить вывод системных сообщений об ошибках в файл-журнал и выдать свое сообщение.
Вариант #4
1 - Напечатать имя текущего каталога 2 - Сменить текущий каталог 3 - Выдать список работающих пользователей 4 - Создать файл 5 - Скопировать файл 6 - Выход #!/bin/bash echo "Выберите пункт меню: 1 - Напечатать имя текущего каталога 2 - Сменить текущий каталог 3 - Выдать список работающих пользователей 4 - Создать файл 5 - Скопировать файл 6 - Выход" echo "? - Помощь" while : read Keypress do case "$Keypress" in #Напечатать имя текущего каталога 1 ) echo "Текущая директория:"; pwd;; #Сменить текущий каталог 2 ) echo "Введите каталог:" read way; cd "$way"; pwd;; #Выдать список работающих пользователей 3 )echo "Пользователи:"; who;; #Создать файл 4 ) echo "Введите название файла" read f if test -f "$f" then echo "`date` Файл $f уже существует!" | tee -a err.log else touch "$f" ls -l "$f" fi;; #Скопировать файл 5 ) echo "Введите имя файла" read f echo "Введите директорию" read way if test -f "$f" then if test -r "$f" then if test -f "$way" then if test -w "$way" then cp -f $f $way else echo "Доступ запрещен ($way)!" | tee -a err.log fi else cp $f $way fi else echo "Доступ запрещен ($way)!" | tee -a err.log fi else echo "Файла $f не существует!" | tee -a err.log fi;; #Выход 6 )exit 0;; #Помощь ? ) echo "Выберите пункт меню: 1 - Напечатать имя текущего каталога 2 - Сменить текущий каталог 3 - Выдать список работающих пользователей 4 - Создать файл 5 - Скопировать файл 6 - Выход";; #Приглашение * ) echo "Введите команду";; esac done