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

Лабораторная работа № 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