Программирование командных файлов (в оболочке Shell) — КиберПедия 

Папиллярные узоры пальцев рук - маркер спортивных способностей: дерматоглифические признаки формируются на 3-5 месяце беременности, не изменяются в течение жизни...

Механическое удерживание земляных масс: Механическое удерживание земляных масс на склоне обеспечивают контрфорсными сооружениями различных конструкций...

Программирование командных файлов (в оболочке Shell)

2017-11-16 230
Программирование командных файлов (в оболочке Shell) 0.00 из 5.00 0 оценок
Заказать работу

 

Командный файл - текстовый файл с правами на запуск.

В командном файле можно записать последовательность команд на исполнение.

Кроме этого можно написать не большой скрипт.

Некоторые возможности по написанию скрипта:

Условный оператор "IF"

Оператор вызова ("CASE")

Оператор цикла с перечислением ("FOR")

Оператор цикла с истинным условием ("WHILE")

Оператор цикла с ложным условием ("UNTIL")

Можно писать свои функции.

В каждой операционной системе есть более мощный скриптовый язык, основным для UNIX является PERL (хотя есть и другие, JScript, PHP и Python).

# Это комментарий.

 

## И это.

 

### И это тоже.

Команда test проверяет выполнение некоторого условия. С использованием этой (встроенной) команды формируются операторы выбора и цикла языка shell.

Два возможных формата команды:

 

test условие

 

или

 

[ условие ]

 

В shell используются условия различных "типов".

УСЛОВИЯ ПРОВЕРКИ ФАЙЛОВ:

-f file

файл "file" является обычным файлом;

-d file

файл "file" - каталог;

-с file

файл "file" - специальный файл;

-r file

имеется разрешение на чтение файла "file";

-w file

имеется разрешение на запись в файл "file";

-s file

файл "file" не пустой.

Примеры. Вводя с клавиатуры командные строки в первом случае получим подтверждение (код завершения "0"), а во втором - опровержение (код завершения "1"). "specific" - имя существующего файла.

 

[ -f specific ]; echo $?

 

 

[ -d specific ]; echo $?

 

 

УСЛОВИЯ ПРОВЕРКИ СТРОК:

str1 = str2

строки "str1" и "str2" совпадают;

str1!= str2

строки "str1" и "str2" не совпадают;

-n str1

строка "str1" существует (непустая);

-z str1

строка "str1" не существует (пустая).

Примеры.

 

x="who is who"; export x; [ "who is who" = "$x" ]; echo $?

 

 

x=abc; export x; [ abc = "$x" ]; echo $?

 

 

x=abc; export x; [ -n "$x" ]; echo $?

 

 

x=""; export x; [ -n "$x" ]; echo $?

 

 


Задание 1:

Запустите Linux.

Составьте справочник для выше приведенных команд (на русском языке), расписав какие параметры для чего нужны.

Поработайте с этими командами.

Напишите программу на Shell для резервирования каталога (каким архиватором, какой каталог и куда спросите у преподавателя).

Сделайте автоматический запуск этого скрипта (в /etc/crontab), для создания ежедневной, еженедельной и ежемесячной копии.

Задание 2

 

###

 

# if-3: Оценка достижений

 

echo -n " А какую оценку получил на экзамене?: "

 

read z

 

if [ $z = 5 ]

 

then echo Молодец!

 

elif [ $z = 4 ]

 

then echo Все равно молодец!

 

elif [ $z = 3 ]

 

then echo Все равно!

 

elif [ $z = 2 ]

 

then echo Все!

 

else echo!

 

fi

 

Задание 3.

###

 

# case-1: Структура "case".

 

# Уже рассматривавшийся в связи со

 

# структурой "if" пример проще и

 

# нагляднее можно реализовать с

 

# помощью структуры "case".

 

echo -n " А какую оценку получил на экзамене?: "

 

read z

 

case $z in

 

5) echo Молодец!;;

 

4) echo Все равно молодец!;;

 

3) echo Все равно!;;

 

2) echo Все!;;

 

*) echo!;;

 

esac

 

 

Задание 4.

 

###

 

# holding: Справочник.

 

# Для различных фирм по имени выдается

 

# название холдинга, в который она входит

 

for i

 

do

 

case $i in

 

ONE|TWO|THREE) echo Холдинг: ZERO;;

 

MMM|WWW) echo Холдинг: Not-Net;;

 

Hi|Hello|Howdoing) echo Холдинг: Привет!;;

 

*) echo Нет такой фирмы;;

 

esac

 

done

Задание 5.

###

 

# print-50: Структура "while"

 

# Расчет позволяет напечатать 50

 

# экземпляров файла "file-22"

 

n=0

 

while [ $n -lt 50 ] # пока n < 50

 

do

 

n=`expr $n + 1`

 

cat file-22 > /dev/lp

 

done

 

Задание 6.

###

 

# specific: Специальные параметры (переменные)

 

echo $0 - имя расчета

 

echo $? - код завершения

 

echo $$ - идентификатор последнего процесса

 

echo $! - идентификатор последнего фонового процесса

 

echo

 

echo $* - значения параметров, как строки

 

echo $@ - значения параметров, как слов

 

echo

 

set -au

 

echo $- - режимы работы интерпретатора

 

Контрольные вопросы:

1.Дайте определение команде test?

2. Принципы обработки прерывания Trap?

3. Операторы условий?

Содержание отчета:

1. Цель работы.

2.Ответы на контрольные вопросы.

3.Распечатка хода работы в электронном виде.

Практическая работа № 15


Поделиться с друзьями:

Кормораздатчик мобильный электрифицированный: схема и процесс работы устройства...

История создания датчика движения: Первый прибор для обнаружения движения был изобретен немецким физиком Генрихом Герцем...

Своеобразие русской архитектуры: Основной материал – дерево – быстрота постройки, но недолговечность и необходимость деления...

Эмиссия газов от очистных сооружений канализации: В последние годы внимание мирового сообщества сосредоточено на экологических проблемах...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.025 с.