Skip to content

IUTen/Yps_BASH_LR2-2

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 

Repository files navigation

Static Badge

Условия задачи

Требуется разработать и установить в системе свою собственную команду терминала, единственной целью которой является печать на экран двух чисел: первое число - количество вызовов этой команды с момента её установки, второе число - количество вызовов этой команды с момента запуска компьютера. Данная команда должна быть доступна глобально для всех пользователей в системе

Разбор кода

log_permanent=~/.log_lab3
log_temp=/tmp/.log_lab3

Здесь путь записывается в переменные, для дальнейшего удобного использования.
Для log_permanent путь может быть любым, там будет хранится количество запусков с момента установки, однако для log_temp файлы обязательно должны лежать в директории /tmp (после каждого запуска эта папка очищается), таким образом мы сможем считать количество запусков во время работы системы.


if ! [ -d $log_permanent ] ;
then
	mkdir $log_permanent	
fi

if ! [ -d $log_temp ] ;
then
	mkdir $log_temp
fi

Оба блока проверяют, существует ли нужная папка, если нет, то создаёт её.


# Создание файла лога, если его нет
if ! [ -f $log_permanent/log.txt ];
then
	echo $((0)) > $log_permanent/log.txt
fi

# Создание файла лога, если его нет
if ! [ -f $log_temp/log.txt ] ;
then
	echo $((0)) > $log_temp/log.txt
fi

Аналогично эти блоки проверяют наличие лог файлов, если их нет, то создаёт их и записывает в них 0


#Обновление количества запусков с момента установки
count_run_permanent=$(cat $log_permanent/log.txt)
echo $(( count_run_permanent + 1 )) > $log_permanent/log.txt

#Обновление количества запусков с момента запуска системы
count_run_temp=$(cat $log_temp/log.txt)
echo $(( count_run_temp + 1 )) > $log_temp/log.txt

Эти два блока работают по следующему принципу:

  1. Чтение из файла кол-во запусков
  2. Запись в файл нового кол-ва запусков


#Вывод на экран
echo "Кол-во запусков: $((count_run_permanent+1))"
echo "Кол-во запусков с запуска системы: $((count_run_temp+1))"

Последний блок выводит в консоль необходимые данные.



Установка разрешений и использование из любой директории

Для установки полного разрешения можно использовать команду chmod 777 <путь к файлу>. Такой вариант разрешает любой "сущности" использовать скрипт.

Чтобы скрипт можно было использовать из любого места, можно использовать команду sudo ln -s <путь к скрипту> /usr/local/bin/<название скрипта>.

После этого скрипт можно будет вызвать, написав в консоль <название скрипта>

Дополнительно

Небольшое уточнение для некоторых команд

  • Во время проверки if ! [ -d $log_permanent ] здесь используется ключ -d. Он вернёт истину, если по указанному пути существует директория
  • Во время проверки if ! [ -f $log_permanent/log.txt ] здесь используется ключ -f. Он вернёт истину, если по указанному пути существует файл
  • Для работы с числами используются ((<объект>))
  • Для записи в файл используется конструкция echo <объект> <путь к файлу>. При использовании > файл перезаписывается, при >> файл дозаписывается
  • Для чтения файла используется конструкция <имя переменной>=$(cat <путь к файлу>). В таком случае файл читается полностью в переменную

About

Вторая лабораторная работа по BASH linux

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages