LINUX.ORG.RU

помогите с решением задачи на Unix.

 , ,


0

1

все надо в один вечный цикл, который работает в зависимости от того, какую команду ввел пользователь

есть папка с музыкой. Общая для всех пользователей. требования:

  1. Все пользователи могут добавлять туда музыку через скрипт (mp3, wav, либо flac), размером не более 10 мегабайт (опционально, не получится и ладно). Если файл с музыкой уже есть — просить ввести другое имя.
  2. Все пользователи могут копировать музыку в текущую папку.
  3. Все пользователи могут удалять музыку.
  4. Нужно ведение истории. Общий файл, хранящий информацию что пользователь А удалил\добавил файл В с датой.
  5. Пользователи могут добавлять тексты песен в файлы с названиями file.mp3.text по отдельной команде скрипта (вводит имя mp3, получает окно для ввода текста. Стоп-слово = end_of_song). Если файл уже есть — запрашивать разрешение на перезапись.
  6. Поиск по названиям песен
  7. Поиск по текстам.
  8. каждый месяц делать бекап музыки в другую папку


Последнее исправление: beastie (всего исправлений: 1)

А вопрос-то в чём? Скрипт что ли написать?

aureliano15 ★★
()

Цена решения?

EXL ★★★★★
()

Поздравляю себя с окочанием учебнаго года. «для ума» в таком каталоге нечиво нет. Сколько flac-ов влезит в 10 Mb - не сосчитать до первого сентября. Замутили бы лучше какой-нибудь свой интерфейс для shazam.

anonymous
()

Основная проблема в том, что я прохожу курс тестировщиков по. и есть отдельная дисциплина Unix. за 3 месяца раз в неделю особо глубоких знаний нет, основные операторы и им подобное рассмотрели. Почему такое сложное (для нас) задание дали на зачет, ума не приложу.

Просто прошу помощи подтолкните, с чего начать. Подскажите с 1 пунктом, хоть как это выглядеть должно, а дальше на этой основе буду думать

Заранее спасибо

stash01
() автор топика
Ответ на: комментарий от stash01

Так бы и сказал, что ты не программёр, а тестировщик. Многие бы вопросы снялись, а то какая-то дичь, честное слово. Мало того, что вряд ли найдётся куча (пользователей) таких фанатов музыки, что эдаким образом начнут усердно заполнять текстовые файлы, при этом строго соблюдая структуру имени файла. Забьют на это правило сразу же. И не потому что не дисциплинированные, а потому что тут сразу возникает куча вопросов с названием композиции. Ну, например, на каком языке печатать имя композиции: на «родном» или «на русском», или «транслитерация», или «как эту песенку знаю, так и назову»? В общем, тут туева хуча дополнительных правил должна вводиться. А кто те правила соблюдать будет, если основной лейтмотив - развлечение. Короче, под все твои пункты подходят owncloud/nextcloud. Разумеется, с небольшим допилом в виде тех же скриптов (пайтон, перл, баш, джава - чё угодно). Берёшь эту own/next, ставишь, тестишь, раз уж тестировщик. Видишь, что комменты к файлам легко (допил на комменты) преобразовываются в вожделенные «file.mp3.text». Поиск там уж есть, но тоже допиляется (при желании). Всё. Лето. Отдыхай и не парься. Задачка решена, землекопа полтора. (с)

anonymous
()

На каком языке пишешь?
Не понятно зачем цикл нужен Чтобы оболочка была, команды внутри цикла ?
Пользователь - это сущность с uid, а общая папка - это каталог в VFS вроде /usr/share или /tmp, с полными правами для этих пользователей?
Источник добавления уже существующий файл? Что значит «уже есть»?
«Текущая» это где и откуда?
Подумай, что будет при одновременной работе нескольких пользователей.
Окно для ввода текста с таким правилом? Сам такое условие придумал?

boowai ★★★★
()
Ответ на: комментарий от boowai

Написать надо на шеле. Создать скрипт прям в консоли. Без всяких доп.программ. по поводу вечного цикла,наверно для того,чтобы за один раз рапустить скрипт и все варианты проверить. Т е вечный цикл и в нем куча ифов, которые проверяют команду от пользователя. Это все,что знаю и что ответил преподаватель. Здесь как таково не надо тестить, просто написать сам скрипт, как бы это сделал программист.

stash01
() автор топика
Ответ на: комментарий от stash01

Когда писать будешь, то не путай /bin/sh,/bin/bash
По большей части считывать достаточно построчно будет, только при вводе текста песен посимвольно. С окном для текста заморачиваться не стоит тогда. Команды лучше оформить через case и функции.
Цикл нужен для выполнения множества команд в рамках одного запуска. В виде:

username@hostname ~ $ scriptname
command1 arg1
command3 arg5 arg6
exit
Но чаще делают чтобы работало так:
username@hostname ~ $ scriptname command1 arg1
username@hostname ~ $ scriptname command3 arg5 arg6
Т.е. программа запускается для одной команды. Тогда цикл не нужен.
Можно сделать и оба способа или ещё добавить считывание из файла.
Без «всяких доп.программ.» на одном шеле далеко не уйти, не для того он сделан. Удалять не сможешь, для поиска придёться многое городить.
Во многих оболочках есть конструкции для сравнения размера файла.

Большая часть слишком простая чтобы объяснять. Попробуй сначала вручную выполнить предполагаемую работу скрипта, потом реализуй работу по одной команде за запуск, а потом и цикл.

boowai ★★★★
()
Ответ на: комментарий от stash01

Почему такое сложное (для нас) задание дали на зачет, ума не приложу.

В наше-то время? Когда интернеты можно глянуть хоть сидя на очке? Да вы, милейший, издеваетесь. Запросец в гугел по теме «каталогизатор на bash» покажет достаточное количество заброшенных проектов. Бери и доделывай под себя. Сутками напролёт в библиотеках сидеть не надо. Для примера: https://sourceforge.net/projects/wita/ Ну, этот не понимает относительных путей и ему непременно надо exiftool. Но в чём проблема переделать и отработать не exif-ы, а теги?

anonymous
()
Ответ на: комментарий от anonymous

Спасибо за направление. Просто дело в том,что не до конца понимаю,что гуглить. Нам объяснили только базовые операторы. Всё. без всяких доп.программ и т д. Не ругайте. В принципе особо не дура, но честно в стопоре с этим заданием. И к теме программирования как такового в принципе не близка.поэтому и возникла сложность.

stash01
() автор топика
Ответ на: комментарий от stash01

Непонятно чего вы ожидали от образования. Думаю, что всяк через нечто в этом духе проходил. Никто ничего не объясняет, рассказывают что-то невнятное, а потом бац! спустя месячишку: «А напиши-ка текстовый редактор». И такая, знаете ли, сразу ностальгия о лекциях по операторам цикла - это что-то! У вас ещё не возникало желания свернуться клубком в дальнем углу, чтоб никто не трогал? Если не возникало, то у вас всё впереди.

anonymous
()
Ответ на: комментарий от anonymous

Да нет, не возникло) просто правда не понимаю, как именно это осуществляется. Что за команда должна быть Чтобы через скрипт добавился файл.если просто как создать, то touch. А по другому готовый файл как не знаю

stash01
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.