Bash-task — различия между версиями
Материал из VAAL-WIKI
Vaal (обсуждение | вклад) м (Добавлена задача №2) |
Vaal (обсуждение | вклад) м (bash_task_Обновление форматирования) |
||
Строка 1: | Строка 1: | ||
<p style="text-align:center"><span style="color:red">'''''Задача №1'''''</span></p> | <p style="text-align:center"><span style="color:red">'''''Задача №1'''''</span></p> | ||
− | Используя цикл и оператор выбора написать скрипт, реализующий следующее: | + | '''Используя цикл и оператор выбора написать скрипт, реализующий следующее''': |
− | * Выводит на экран меню с выбором, состоящим из двух пунктов "1)" "2)" | + | * Выводит на экран(в терминал) '''меню с выбором''', состоящим из двух пунктов "''1)''" "''2)''" |
− | * При выборе "1)" выводит | + | * При выборе "''1)''" выводит текст на экран(в терминал), содержащий только цифру '''1''' |
− | * При выборе "2)" выводит | + | * При выборе "''2)''" выводит текст на экран(в терминал), содержащий только цифру '''2''' |
− | * При вводе любого другого символа, выводит сообщение о неправильном вводе | + | * При вводе любого другого символа, выводит на экран сообщение о неправильном вводе и просит повторить ввод. |
При неправильном вводе цикл бесконечен, т.е. продолжается пока не будет введён нужный символ, а затем снова выводится меню выбора. | При неправильном вводе цикл бесконечен, т.е. продолжается пока не будет введён нужный символ, а затем снова выводится меню выбора. | ||
− | Модернизировать скрипт так, чтобы при неправильном вводе он выводил сообщение о выходе из скрипта через три секунды, | + | '''Модернизировать''' скрипт так, чтобы при ''неправильном вводе'' он выводил сообщение о выходе из скрипта через ''три секунды'', после трёх секунд ожидания осуществляется выход из скрипта. |
− | после | + | |
<p style="text-align:center"> | <p style="text-align:center"> | ||
<spoiler text="Вариант решения Задачи №1"><source lang="bash"> | <spoiler text="Вариант решения Задачи №1"><source lang="bash"> | ||
#!/bin/env bash | #!/bin/env bash | ||
− | #trap 'echo -e "\e[ | + | #trap 'echo -e "\e[31mВот фиг тебе, а не прерывание\e[0m!"' 1 2 3 5 9 15 |
PS3='Введите значение: ' && echo | PS3='Введите значение: ' && echo | ||
Строка 40: | Строка 39: | ||
</p> | </p> | ||
<p style="text-align:center"><span style="color:red">'''''Задача №2'''''</span></p> | <p style="text-align:center"><span style="color:red">'''''Задача №2'''''</span></p> | ||
− | Написать скрипт реализующий следующее: | + | '''Написать скрипт реализующий следующее''': |
− | * Создать функцию, которая реализует вывод списка директорий в файл /tmp/dir_list.log. При этом в качестве входного аргумента для функции служит переданный | + | * Создать '''функцию''', которая реализует ''вывод списка директорий'' в файл '''/tmp/dir_list.log'''. При этом в качестве ''входного аргумента'' для функции служит переданный скрипту параметр, представляющий из себя ''абсолютный путь''. |
− | * Создать функцию, которая будет считывать содержимое /tmp/dir_list.log и выводить на экран, а также копировать это содержимое в /tmp/dir_list.0. | + | * Создать '''функцию''', которая будет ''считывать содержимое'' '''/tmp/dir_list.log''' и выводить на экран, а также копировать это содержимое в '''/tmp/dir_list.0'''. |
− | * Вызов функций происходит с задержкой в 5 секунд | + | * Вызов функций происходит с ''задержкой в 5 секунд''. |
− | * После успешной отработки скрипта и выхода из него файлы /tmp/dir_list.log и /tmp/dir_list.0 должны быть автоматически удалены. Для этого пункта запрещается прямой вызов `rm -rf` перед завершением скрипта. | + | * После успешной отработки скрипта и выхода из него файлы '''/tmp/dir_list.log''' и '''/tmp/dir_list.0''' должны быть автоматически удалены. Для этого пункта '''запрещается''' прямой вызов ''`rm -rf`'' или ''$(rm -rf)'' перед завершением скрипта. |
<p style="text-align:center"> | <p style="text-align:center"> | ||
<spoiler text="Вариант решения Задачи №2"><source lang="bash"> | <spoiler text="Вариант решения Задачи №2"><source lang="bash"> |
Версия 08:28, 20 февраля 2018
Задача №1
Используя цикл и оператор выбора написать скрипт, реализующий следующее:
- Выводит на экран(в терминал) меню с выбором, состоящим из двух пунктов "1)" "2)"
- При выборе "1)" выводит текст на экран(в терминал), содержащий только цифру 1
- При выборе "2)" выводит текст на экран(в терминал), содержащий только цифру 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) перед завершением скрипта.