Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: скрипт для быстрого создания фонового слайдшоу из папки  (Прочитано 3515 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Gannebal

  • Автор темы
  • Любитель
  • *
  • Сообщений: 87
    • Просмотр профиля
Вот задался сегодня я вопросом - заделать слайдшоу вместо статичных обоев, нашел программу, и стало не интересно, решил поступить так как делают большенство на моей специальности - нашкодить накодить
И тут встала передомной проблема, я ведь никогда не писал скрипты.....(именно на Shell) Что делать, пошел гуглить, убил ровно 12 часов, чтоб с нуля понять несколько десятков вещей и привыкнуть к новому синтаксису(привык к ненависному паскалю, с кривым компилятором делфи) инаписал за эти 12 часов этакую весч...
Понимаю, многое написано коряво, тупо, не рационально, но сюда я собрал все чтонашел и все что завелось с полупинка, вообщем набыдлокодил

Прошу господа форумчане научите как это-же написать лучше, кашернее :) (Несерчайте, устал, не стал оптимизировать, так же хочу еще функционала навесить)
(Нажмите, чтобы показать/скрыть)
« Последнее редактирование: 28 Марта 2011, 21:37:39 от Gannebal »
Не Рим, а Карфагенский сенат победил Ганнибала

Оффлайн llenchikk

  • Активист
  • *
  • Сообщений: 420
    • Просмотр профиля
    • sms.ru
Правой кнопкой по рабочему столу -> Изменить фон рабочего стола. Там среди стандартных картинок есть и слайдшоу. Можно подсмотреть что за скрипт.

Оффлайн RazrFalcon

  • O_o
  • Старожил
  • *
  • Сообщений: 3129
  • Zombie Mod
    • Просмотр профиля
    • Я на GitHub
Я просто на qt написал  ;)
Gentoo + KDE, Official Windows Hater
Хотите помочь нашей вики: https://help.ubuntu.ru/wiki/fixme

Оффлайн Gannebal

  • Автор темы
  • Любитель
  • *
  • Сообщений: 87
    • Просмотр профиля
Правой кнопкой по рабочему столу -> Изменить фон рабочего стола. Там среди стандартных картинок есть и слайдшоу. Можно подсмотреть что за скрипт.
это не скрипт, а xml фаил
если внимательно посмотреть в конец скрипта, то можно увидеть формирование того самого xml файла, мне интересна более нормальная реализация, а не такая топорная как у меня
« Последнее редактирование: 28 Марта 2011, 22:29:35 от Gannebal »
Не Рим, а Карфагенский сенат победил Ганнибала


Оффлайн Gannebal

  • Автор темы
  • Любитель
  • *
  • Сообщений: 87
    • Просмотр профиля

Я попросил помочь с пониманием, и спросил как будет правильно именно на bin/bash, а не просил ссылки на другие проги!!!!!!!! неужели так тяжело????
Не Рим, а Карфагенский сенат победил Ганнибала

ALiEN175

  • Гость
извиняюсь, думал что дело не в баш, а в хмл)

Цитировать
как будет правильно именно на bin/bash
ошибок не выдает - значит, правильно. Каждый по-своему лепит.

тут https://forum.ubuntu.ru/index.php?topic=36907.0 могут помочь именно по bash

и еще приложу свой скрипт создания xml для слайдшоу. без гуя, конечно. Откомментировал по возможности.


(Нажмите, чтобы показать/скрыть)
« Последнее редактирование: 29 Марта 2011, 08:52:14 от ALiEN175 »

Оффлайн Gannebal

  • Автор темы
  • Любитель
  • *
  • Сообщений: 87
    • Просмотр профиля
извиняюсь, думал что дело не в баш, а в хмл)

Цитировать
как будет правильно именно на bin/bash
ошибок не выдает - значит, правильно. Каждый по-своему лепит.

тут https://forum.ubuntu.ru/index.php?topic=36907.0 могут помочь именно по bash

и еще приложу свой скрипт создания xml для слайдшоу. без гуя, конечно. Откомментировал по возможности.


(Нажмите, чтобы показать/скрыть)

вот за это сильно благодарю)))
Не Рим, а Карфагенский сенат победил Ганнибала

Оффлайн SergeyIT

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 5589
  • Все по палатам!
    • Просмотр профиля
(привык к ненависному паскалю, с кривым компилятором делфи)
А это обязательно писать  :idiot2:
Извините, я все еще учусь

Оффлайн Gannebal

  • Автор темы
  • Любитель
  • *
  • Сообщений: 87
    • Просмотр профиля
(привык к ненависному паскалю, с кривым компилятором делфи)
А это обязательно писать  :idiot2:
это так сказать оправдание временных затрат, да и что либо сложнее чем вывести "привет" в дельфе сложно сделать(я конечно утрирую и имею ввиду написание нечто стоящяго)

Пользователь решил продолжить мысль 29 Марта 2011, 21:52:19:
вот, написал, более красиво, меньше странных и непонятных вещей, названия переменных говорящие, поэтому нет коментариев, функционал больше(правда на баги не проверил) и работет ток с файлами *.jpg
(Нажмите, чтобы показать/скрыть)

а теперь воросы которые у меня возникли

-как в find установить больше масок, или применить аналогичное действие
-как перезаписать / создать фаил (если нет то создать, иначе перезаписать) одной процедурой
-как записать имена всех файлов с указанными расширениями(тоесть их надо указать несколько *.jpg *.jpeg *.png) в фаил
-как циклом пройтись по строкам в файле, на каждой итерации получая очередную строку
-как отрезать от строки кусок например есть строка /1/,,,/10/ хочу получить строку /1/.../6/ тоесть получить путь до каталога на 4 уровня ниже, желательно список стандартных процедур для работы со строками(если таковые имеются)
« Последнее редактирование: 29 Марта 2011, 21:52:19 от Gannebal »
Не Рим, а Карфагенский сенат победил Ганнибала

Оффлайн Torna

  • Новичок
  • *
  • Сообщений: 40
    • Просмотр профиля
создание файла:
echo hello > newFile.log
добавить новую строчку в существующий файл:
echo hello1 >> newFile.log
Цитировать
-как записать имена всех файлов с указанными расширениями (тоесть их надо указать несколько *.jpg *.jpeg *.png) в фаил
Можно засунуть расширения в массив и циклом пробежать по нему. Пример работы с массивом
https://forum.ubuntu.ru/index.php?topic=145563.0

парсить файл можно с помощью программы sed (очень геморройный парсер)
http://ru.wikipedia.org/wiki/Sed

Оффлайн RazrFalcon

  • O_o
  • Старожил
  • *
  • Сообщений: 3129
  • Zombie Mod
    • Просмотр профиля
    • Я на GitHub
sed - один из лучших!
Gentoo + KDE, Official Windows Hater
Хотите помочь нашей вики: https://help.ubuntu.ru/wiki/fixme

Оффлайн Gannebal

  • Автор темы
  • Любитель
  • *
  • Сообщений: 87
    • Просмотр профиля
никак не могу разобраться:
Цитировать
ls "/usr/share/backgrounds/" >> "/home/$USER/.backgrounds/picture_list"
выводит в этот фаил имена всего что нашла, мне надо оставить в файле строки которые соответствуют одному из шаблонов *.jpg *.jpeg *.png
предполагается, что мы не знаем что именно лежит в этой дирректории и соответственно мы не знаем что нам вывелось в фаил

Пользователь решил продолжить мысль 30 Марта 2011, 16:58:51:
желательно с примером, поскольку я так и не понял как это все сотварить одной командой(тоесть парсить "ненужные" строки)
« Последнее редактирование: 30 Марта 2011, 16:58:51 от Gannebal »
Не Рим, а Карфагенский сенат победил Ганнибала

Оффлайн RazrFalcon

  • O_o
  • Старожил
  • *
  • Сообщений: 3129
  • Zombie Mod
    • Просмотр профиля
    • Я на GitHub
ls -1 *.jpg *.png "/usr/share/backgrounds/" > "/home/$USER/.backgrounds/picture_list"
Gentoo + KDE, Official Windows Hater
Хотите помочь нашей вики: https://help.ubuntu.ru/wiki/fixme

Оффлайн Gannebal

  • Автор темы
  • Любитель
  • *
  • Сообщений: 87
    • Просмотр профиля
спасибо, не знал что в ls можно исспользовать маски

Пользователь решил продолжить мысль 30 Марта 2011, 19:01:35:
работает, но только так
Цитировать
ls "/usr/share/backgrounds/"*.jpg "/usr/share/backgrounds/"*.png "/usr/share/backgrounds/"*.jpeg >> "/home/$USER/.backgrounds/picture_list"
« Последнее редактирование: 30 Марта 2011, 19:03:07 от Gannebal »
Не Рим, а Карфагенский сенат победил Ганнибала

 

Страница сгенерирована за 0.05 секунд. Запросов: 25.