Автор Тема: bash проблемче  (Прочетена 2112 пъти)

asp

  • Напреднали
  • *****
  • Публикации: 55
    • Профил
bash проблемче
« -: Jun 13, 2010, 15:16 »
Код:
#!/bin/sh
echo Enter directory to search, example [/etc/rc.d/]:
read dir
echo Enter original text:
read orginal
echo Enter replaced text:
read replace

find $dir -type f -exec sed -i 's/$orginal/$replace/g' {} \;

Е тук къде е грешката  ???
Активен

neter

  • Global Moderator
  • Напреднали
  • *****
  • Публикации: 3408
  • Distribution: Debian, SailfishOS, CentOS
  • Window Manager: LXDE, Lipstick
    • Профил
    • WWW
Re: bash проблемче
« Отговор #1 -: Jun 13, 2010, 16:41 »
Проблемът ти е в единичните кавички в реда за sed. Те не позволяват прочитането на променливите като променливи, а променливите вътре се четат като обикновен текст. Използвай двойни кавички ;)
Активен

"Да си добре приспособен към болно общество не е признак за добро здраве" - Джиду Кришнамурти

kip

  • Напреднали
  • *****
  • Публикации: 162
  • Distribution: Debian, FreeBSD, Arch Linux
  • Window Manager: Gnome,LXDE,XFCE
    • Профил
Re: bash проблемче
« Отговор #2 -: Jun 13, 2010, 18:52 »
А ако държи на единичните кавички става и така
find $dir -type f -exec sed -i 's/'$orginal'/'$replace'/g' {} \;
Активен

asp

  • Напреднали
  • *****
  • Публикации: 55
    • Профил
Re: bash проблемче
« Отговор #3 -: Jun 21, 2010, 19:13 »
дам мерси бачка 6  :P
Активен

Подобни теми
Заглавие Започната от Отговора Прегледи Последна публикация
BASH: Как да поддържам една програма работеща
Общ форум
Regia 1 9249 Последна публикация Feb 16, 2005, 08:51
от
bash
Настройка на програми
tuxi 7 4763 Последна публикация Jun 11, 2005, 19:12
от tuxi
Моля за малко помощ за BASH
Настройка на програми
bonbon 3 3532 Последна публикация Dec 04, 2005, 16:37
от bonbon
BASH
Общ форум
Dean79 3 3676 Последна публикация Jan 13, 2006, 00:24
от Dean79
Bash присвояване на стойност от файл
Общ форум
Pulear 6 4292 Последна публикация May 21, 2006, 17:20
от Pulear