Требуется разработать и установить в системе свою собственную команду терминала, единственной целью которой является печать на экран двух чисел: первое число - количество вызовов этой команды с момента её установки, второе число - количество вызовов этой команды с момента запуска компьютера. Данная команда должна быть доступна глобально для всех пользователей в системе
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Эти два блока работают по следующему принципу:
- Чтение из файла кол-во запусков
- Запись в файл нового кол-ва запусков
#Вывод на экран
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 <путь к файлу>). В таком случае файл читается полностью в переменную
