Получение навыков написания сценариев на «скриптовых» языках.
Скриптовый язык, на котором будет выполняться лабораторная работа, студентом выбирается самостоятельно. Примеры возможных скриптовых языков: JavaScipt (Node.js), Python, Ruby, Lua, Perl, Racket и т.д.
При демонстрации результатов работы преподавателю все скрипты должны запускаться командой, содержащей только имя скрипта (т.е. без указания в командной строке пути к скрипту и интерпретатора), то есть так:
./myscript arg1 arg2
а не так:
bash ./myscript.sh arg1 arg2
Ha Bash напишите скрипт, который будет запускать долго выполняющуюся программу (напишите скрипт, имитирующий такую программу, скажем, просто ожидающий несколько минут и завершающийся) строго каждые t минут, но так, чтобы одновременно выполнялось не более 1 экземпляра этой программы. Путь к программе и периодичность запуска передавайте в виде аргументов командной строки. Вывод и ошибки запускаемой программы направляйте в файлы, имена этих файлов формируйте автоматически. Запускаемую программу запрещается убивать.
Ha Bash напишите скрипт, который принимает путь к проекту на языке C
и выводит общее число непустых строк во всех файлах .c
и .h
указанного
проекта. Предусмотрите рекурсивный обход вложенных папок.
Ha выбранном скриптовом языке напишите программу, которая выводит в консоль указанное число строк заданной длины, состоящих из латинских букв, цифр и печатных знаков, присутствующих на клавиатуре. Длину строки и число строк передавайте как аргументы командой строки. Для каких целей можно использовать такую программу? Оформите логику приложения в виде отдельной функции и поместите её в отдельный модуль.
Задание повышенной сложности. Ha выбранном скриптовом языке напишите функцию, которая принимает произвольную чистую функцию с переменным числом аргументов и возвращает мемоизованную версию этой функции. Для запоминания результатов вычислений выберете подходящую структуру данных из числа встроенных классов выбранного языка.