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


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

Автор Тема: самоизменяемый скрипт  (Прочитано 1185 раз)

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

Оффлайн zl0i

  • Автор темы
  • Активист
  • *
  • Сообщений: 344
  • Как много веселых ребят и все делают велосипед...
    • Просмотр профиля
самоизменяемый скрипт
« : 04 Апреля 2009, 20:30:48 »
Имеется такой скрипт. Он проверяет версию программы в другом фале и изменяет её после обновления. Есть ли возможность хранить версию программы в самом скрипте и по окончании обновления сохранить номер обновленной версии в нем же, т.е. сделать самоизменяющийся скрипт?
ВЕЛОСИПЕДОВ ДЛЯ ВСЕХ, ДАРОМ, И ПУСТЬ НИКТО НЕ УЙДЁТ ОБИЖЕННЫЙ!

Оффлайн warlock

  • Активист
  • *
  • Сообщений: 257
  • Linux Ubuntu 12.04
    • Просмотр профиля
Re: самоизменяемый скрипт
« Ответ #1 : 04 Апреля 2009, 20:44:17 »
скорее всего возможно, думаю надо создать некую переменную в которой хранилась бы предыдущая версия программы
http://www.codenet.ru/progr/other/sh/

Оффлайн zl0i

  • Автор темы
  • Активист
  • *
  • Сообщений: 344
  • Как много веселых ребят и все делают велосипед...
    • Просмотр профиля
Re: самоизменяемый скрипт
« Ответ #2 : 04 Апреля 2009, 21:30:35 »
Имеется в виду создать переменную окружения? Мануал конечно хороший, но по теме там ничего нет. А как насчет того, чтобы заставить скрипт просматривать самого себя на наличие например строки
## VERSION=999А уже после выполнения изменить эту строку и сохранить в самом же скрипте? Сложно, но это избавит от создания другого файла и сделает скрипт самодостаточным.
Или в самом начале сделать
my_rev=999а в самом конце скрипта разыскать в нем же эту строку и изменить на новую? Скорее здесь вопрос в самоизменяемости скрипта, не приведет ли это к самозацикливанию?
ВЕЛОСИПЕДОВ ДЛЯ ВСЕХ, ДАРОМ, И ПУСТЬ НИКТО НЕ УЙДЁТ ОБИЖЕННЫЙ!

Оффлайн ArcFi

  • Старожил
  • *
  • Сообщений: 15189
    • Просмотр профиля
    • aetera.net
Re: самоизменяемый скрипт
« Ответ #3 : 05 Апреля 2009, 06:29:08 »
#!/bin/bash

a=123

sed -i "$0" -e 's/^a=123/a=456/g'

В принципе работает.

Оффлайн zl0i

  • Автор темы
  • Активист
  • *
  • Сообщений: 344
  • Как много веселых ребят и все делают велосипед...
    • Просмотр профиля
Re: самоизменяемый скрипт
« Ответ #4 : 05 Апреля 2009, 14:07:46 »
ArcFi , спасибо. Работает. Немного адаптировал для своего скрипта, теперь как и задумывалось отпала необходимость в другом файле.
ВЕЛОСИПЕДОВ ДЛЯ ВСЕХ, ДАРОМ, И ПУСТЬ НИКТО НЕ УЙДЁТ ОБИЖЕННЫЙ!

plin2s

  • Гость
Re: самоизменяемый скрипт
« Ответ #5 : 05 Апреля 2009, 14:49:45 »
впринципе можно добавлять в конец файла закоментированную строчку при помощи >>
а в начале выполнения сверятьс с ней

 

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