Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

10 лаба

.docx
Скачиваний:
291
Добавлен:
12.06.2018
Размер:
97.08 Кб
Скачать

Разработка сценариев bash

Цель работы – практическое знакомство с методами создания и использования сценариев ОС Linux

1. Получить полный список ключей команды stat.

Аргументы, обязательные для длинных ключей, обязательны и для коротких.

-L, --dereference следовать по ссылкам

-f, --file-system показать состояние файловой системы, а не файла

-c --format=ФОРМАТ использовать указанный ФОРМАТ, а не принимаемый по

умолчанию; переводить строку после каждого

использования ФОРМАТА

--printf=FORMAT как --format, но интерпретировать экранирующие

последовательности и не переводить строку в конце.

Если вам нужен перевод строки, вставьте в ФОРМАТ \n.

-t, --terse выводить информацию в компактной форме

--help показать эту справку и выйти

--version показать информацию о версии и выйти

Допустимые форматные последовательности для файлов (без --file-system):

%a права доступа в восьмеричной форме

%A права доступа в читаемой форме

%b число выделенных блоков (см. %B)

%B размер блока, сообщаемого %b, в байтах

%C строка контекста безопасности SELinux

%d номер устройства, десятичный

%D номер устройства, шестнадцатеричный

%f низкоуровневый режим, шестнадцатеричный

%F тип файла

%g ID группы-владельца

%G имя группы-владельца

%h количество жёстких ссылок

%i количество Inode

%m точка монтирования

%n имя файла

%N экранированное имя файла, символьная ссылки разыменовывается

%o оптимальный размер блока ввода/вывода

%s полный размер в байтах

%t основной тип устройства, шестнадцатеричный формат

%T второстепенный тип устройства, шестнадцатеричный формат

%u ID пользователя-владельца

%U имя пользователя-владельца

%w время создания файла; - , если неизвестно

%W время создания файла в секундах с начала Эпохи; 0, если неизвестно

%x время последнего доступа

%X время последнего доступа в секундах с начала Эпохи

%y время последней модификации

%Y время последней модификации в секундах с начала Эпохи

%z время последнего изменения

%Z время последнего изменения в секундах с начала Эпохи

Допустимые форматные последовательности для файловых систем:

%a количество свободных блоков, доступных для обычного пользователя

%b общее количество блоков данных в файловой системе

%c общее количество файловых нод в файловой системе

%d количество свободных файловых нод в файловой системе

%f количество свободных блоков в файловой системе

%i идентификатор файловой системы, шестнадцатеричный

%l максимальная длина имени файла

%n имя файла

%s размер блока (для быстрейшей передачи)

%S фундаментальный размер блока (для подсчета блоков)

%t тип файловой системы, шестнадцатеричный

%T тип файловой системы в понятном для человека виде

2. Вычислить факториал целого числа, вводимого с клавиатуры. Предусмотреть проверку правильности ввода аргумента.

(( )) - математическое сравнение.

[ - используется для логического сравнения.

fi - обозначаем окончание условия.

Комментарий начинается со знака # и продолжается до конца строки. Принято знак # ставить в первой символьной позиции строки. Первая строка #! /bin/sh — это особая форма комментария; символы #! сообщают системе о том, что следующий за ними аргумент — программа, применяемая для выполнения данного файла. В данном случае программа /bin/sh — командная оболочка, применяемая по умолчанию.

Команда exit гарантирует, что сценарий вернет осмысленный код завершения.

листинг:

Выр1 -gt Выр2

True (истина), если Выр1 меньше Выр2

Выр1 -lt Выр2

True (истина), если Выр1 меньше, чем Выр2

#!/bin/bash  echo "Введите число от которого будете брать факториал"  read counter  factorial=1  if [ $counter -lt 0 ]  then  echo "Введите положительное число или ноль"  else  while [ $counter -gt 0 ]  do  factorial=$(( $factorial * $counter ))  counter=$(( $counter - 1 ))  done  echo $factorial  fi  exit 0

3. Найти первые N чисел Фибоначчи, используя рекуррентное соотношение

Ai+1=Ai+Ai-1

Значения первых двух чисел и необходимое количество чисел N ввести с клавиатуры.

листинг:

#!/bin/bash

echo "Введите первое число:"

read a

echo "Введите второе число:"

read b

echo "Введите количество элементов последовательности:"

read N

echo "Первые" $N "чисел Фибоначчи:"

i=1

while [ $i -le $N ]

do

let "d=(($b+$a))"

a=$b

b=$d

let "i+=1"

echo "$b"

done

exit 0

4. Написать и выполнить сценарии для решения индивидуальных задач, номер задачи определяется номером бригады:

4 вариант. В текущем каталоге найти имя файла, который был изменен позже всех. На экран вывести дату изменения и имя файла.

Для получения доступа к отдельным полям информации о файле или файловой системе к приведенным выше командам добавляется ключ –с и параметр, определяющий поле.

%n имя файла

% y Время последней модификации

-r в обратном порядке

Line вывести одну строку

листинг

#!/bin/bash

stat -c ‘%y %n’ * | sort -rh | line

exit 0

Соседние файлы в предмете Операционные системы