Bash-task — различия между версиями
Материал из VAAL-WIKI
Vaal (обсуждение | вклад) м (bash_task_Обновление) |
Vaal (обсуждение | вклад) м (bash_task Обновление решения №3) |
||
Строка 95: | Строка 95: | ||
<spoiler text="Вариант решения Задачи №3"><source lang="bash"> | <spoiler text="Вариант решения Задачи №3"><source lang="bash"> | ||
#!/bin/env bash | #!/bin/env bash | ||
− | |||
reg_u=$(who |awk {'print $1'}) | reg_u=$(who |awk {'print $1'}) | ||
xdate=$(date +%Y-%m-%d_%H-%M-%S) | xdate=$(date +%Y-%m-%d_%H-%M-%S) | ||
upt=$(uptime -p |sed -e 's|up||g' -e 's|day.|дня(-ей)|' -e 's|hour.|час(-а,-ов)|' -e 's|minute.|минут(-ы)|') | upt=$(uptime -p |sed -e 's|up||g' -e 's|day.|дня(-ей)|' -e 's|hour.|час(-а,-ов)|' -e 's|minute.|минут(-ы)|') | ||
− | upt_w=$(uptime -p |sed -e 's|up||g' -e 's|week.|недель(-я,-и)|' -e 's|day.|дня(-ь,-ей)|' | + | upt_w=$(uptime -p |sed -e 's|up||g' -e 's|week.|недель(-я,-и)|' -e 's|day.|дня(-ь,-ей)|' -e 's|hour.|час(-а,-ов)|' -e's|minute.|минут(-ы)|') |
− | + | ||
log_sys(){ | log_sys(){ | ||
− | logger -i -t " | + | logger -i -t "CSys" Дата\/время: $xdate \| Зарегистрированные в системе пользователи: $reg_u \| Время работы системы: $1 |
− | + | ||
} | } | ||
− | if [ $(uptime|awk {'print $3'}) -gt 7 ]; then log_sys $upt_w; else log_sys $ | + | if [ $(uptime|awk {'print $3'}) -gt 7 ]; then log_sys "$upt_w"; else log_sys "$upt"; fi |
− | + | ||
− | + | ||
exit 0 | exit 0 |
Версия 10:47, 20 февраля 2018
Задача №1
Используя цикл и оператор выбора написать скрипт, реализующий следующее:
- Выводит на экран(в терминал) меню с выбором, состоящим из двух пунктов "1)" "2)"
- При выборе "1)" выводит текст на экран(в терминал), содержащий только цифру 1
- При выборе "2)" выводит текст на экран(в терминал), содержащий только цифру 2
- При вводе любого другого символа, выводит на экран сообщение о неправильном вводе и просит повторить ввод.
При неправильном вводе цикл бесконечен, т.е. продолжается пока не будет введён нужный символ, а затем снова выводится меню выбора. Модернизировать(№1) скрипт так, чтобы при неправильном вводе он выводил сообщение о выходе из скрипта через три секунды, после трёх секунд ожидания осуществляется выход из скрипта. Модернизировать(№2) скрипт добавив в него возможность прекращения работы в меню.
Задача №2
Написать скрипт реализующий следующее:
- Создать функцию, которая реализует вывод списка директорий в файл /tmp/dir_list.log. При этом в качестве входного аргумента для функции служит переданный скрипту параметр, представляющий из себя абсолютный путь.
- Создать функцию, которая будет считывать содержимое /tmp/dir_list.log и выводить на экран, а также копировать это содержимое в /tmp/dir_list.0.
- Вызов функций происходит с задержкой в 5 секунд.
- После успешной отработки скрипта и выхода из него файлы /tmp/dir_list.log и /tmp/dir_list.0 должны быть автоматически удалены. Для этого пункта запрещается прямой вызов `rm -rf` или $(rm -rf) перед завершением скрипта.
Задача №3
Написать скрипт, который передаёт всю полученную в ходе своей работы информацию в системный журнал:
- Дату и время в формате ГГГГ-ММ-ДД_ЧЧ-ММ-СС.
- Список зарегистрировавшихся в системе,на текущий момент, пользователей.
- Время работы системы(вывод должен быть представлен кириллицей).
В консоли продемонстрировать вывод верно работающего скрипта.