Скачиваний:
11
Добавлен:
09.05.2014
Размер:
12.6 Кб
Скачать

Лабораторная работа № 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
Соседние файлы в папке задание №1 — 3