16

Re: Редактирование внутри скрипта...

MrClon пишет:

А в одну строку ты пишешь специально, что-бы читать было трудней?

'>' это не переименование а перенаправление вывода, в данном случае в файл.

Попробуй сделать всё тоже самое только в ручную и не одной командой, тогда будет видно на каком этапе косяк

Перед твоим ответом я написал что все уже работает, я сделал именно так как ты сказал
За пропись в одну строку извиняюсь, я просто копировал из своего скрипта  smile

Огромное спасибо !!!

Еще маленький вопросик... Почему надо сначала переименовать фаил->изменить->переименовать обратно ?
Почему нельзя работать сразу с ориг. фаилом ?

Lausanne & Lyon de descente...
----------------
Schturman home page

Поделиться

17

Re: Редактирование внутри скрипта...

чтение и запись в один и тот же файл запрещены вообще

We all know Linux is great … it does infinite loops in 5 seconds.The only limiting factor of the Linux operating system is its user.

18

Re: Редактирование внутри скрипта...

Если уж прям так хочется писать туда же, то можно такой костыль:

sed блабла menu | tee menu > /dev/null
A mammal should be able to hunt mice, hibernate, fly, chew its cud, echolocate, invent tools, lay eggs, burrow. Speciation is for insects.

19

Re: Редактирование внутри скрипта...

bonapart пишет:

чтение и запись в один и тот же файл запрещены вообще

Thanks  smile

Lausanne & Lyon de descente...
----------------
Schturman home page

Поделиться

20

Re: Редактирование внутри скрипта...

Schturman
Ещё раз подчеркну что '>' это не переименование а перенаправление вывода программы в файл.

Кстати во варианте с промежуточным файлом есть ещё дополнительный прок: можно сохранять старую (резервную) копию файла.
mv menu menu.bak
sed … menu.bak > menu
Конфиг отредактирован, оригинальный файл сохранён.

P.S. а зачем ты в скрипте всё в одну строчку пишешь?

На форуме появляюсь редко, но N900 пользоваться не перестал, если вдруг что-то нужно пишите в jabber или eMail
Jabber: mrclon@jabnet.org

21

Re: Редактирование внутри скрипта...

bonapart пишет:

чтение и запись в один и тот же файл запрещены вообще

Ну почему же?

echo test > t
cat t >> t

Очень весело smile
Просто > перезаписывает файл и потому сначала очищает.

A mammal should be able to hunt mice, hibernate, fly, chew its cud, echolocate, invent tools, lay eggs, burrow. Speciation is for insects.

Поделиться

22 (04.01.2011 02:56:24 отредактировано Schturman)

Re: Редактирование внутри скрипта...

Ребята, еще раз всем спасибо! Все работает  big_smile
Почему пишу в одну строку... Хмм.. да и сам не знаю... так было в первоначалном файле, так я уже так же по примеру и продолжил... Я же говорил, что нифига в этом не шарю, но после того как ты спросил, подумал и логика привела меня к мысли что действително можно писать команды одну под другой...  smile

Кстати вопрос, если я хочу писать команды одну под другой, то мне их просто надо писать одну под другой или перед каждой командой мне надо писать слово "echo"

я сдеелал так:

      k|K) cd /opt/catorise && mv menu menu_old
      sed -e 's/smm10: ovi/smm10: navigation/g' menu_old > menu && rm menu_old
      /opt/catorise/catorise
      echo " "
      echo " "      
      echo "Icon moved from OVI to Navigation section of Catorise menu."
      echo " " ;;

и оно сработало...

или правильней будет так (кстати так оно не сработало hmm):

      k|K) cd /opt/catorise && mv menu menu_old
      echo sed -e 's/smm10: ovi/smm10: navigation/g' menu_old > menu && rm menu_old
      echo /opt/catorise/catorise
      echo " "
      echo " "      
      echo "Icon moved from OVI to Navigation section of Catorise menu."
      echo " " ;;

Я так же ради интереса попробовал второй вариант:

sed -e 's/smm10: ovi/smm10: navigation/g' menu | tee menu > /dev/null

не сработало... так же как и в первый раз, фаил "menu" полностью очистился от текста...

Lausanne & Lyon de descente...
----------------
Schturman home page

Поделиться

23

Re: Редактирование внутри скрипта...

sed -i -e вам в помощь. И никаких танцев с выводом не нужно.

24 (04.01.2011 12:32:35 отредактировано MrClon)

Re: Редактирование внутри скрипта...

Schturman
echo нужна только если скрипт должен что-то сказать пользователю.
Надо так
cd /opt/catorise
mv menu menu.bak
sed -e 's/smm10: ovi/smm10: navigation/g' menu.bak > menu
/opt/catorise/catorise

На счёт последней строки не уверен. Она запускает catorise, видимо это нужно что-бы он заново прочёл изменённый конфиг.

P.S. почитай «Linux. Основные команды. Карманный справочник». Там в конце есть про скрипты, да и вообще книга толковая.

На форуме появляюсь редко, но N900 пользоваться не перестал, если вдруг что-то нужно пишите в jabber или eMail
Jabber: mrclon@jabnet.org

25 (04.01.2011 17:16:57 отредактировано Schturman)

Re: Редактирование внутри скрипта...

MrClon пишет:

Schturman
echo нужна только если скрипт должен что-то сказать пользователю.
Надо так
cd /opt/catorise
mv menu menu.bak
sed -e 's/smm10: ovi/smm10: navigation/g' menu.bak > menu
/opt/catorise/catorise

На счёт последней строки не уверен. Она запускает catorise, видимо это нужно что-бы он заново прочёл изменённый конфиг.

P.S. почитай «Linux. Основные команды. Карманный справочник». Там в конце есть про скрипты, да и вообще книга толковая.

Большое спасибо !!!
И да последняя строка заставляет катораисе переорганизовать иконки..

П.С. Книжку обязательно почитаю..  smile

P.S2. кстати этот вариант тоже сработал, спасибо smile

sed -i -e 's/smm10: ovi/smm10: navigation/g' menu

Теперь Sygic 10 ставится за 2 с половиной минути, включая все мои настройки big_smile

Lausanne & Lyon de descente...
----------------
Schturman home page

Поделиться