Linux за българи: Форуми

Програмиране => Общ форум => Темата е започната от: asp в Jun 13, 2010, 15:16



Титла: bash проблемче
Публикувано от: asp в 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' {} \;

Е тук къде е грешката  ???


Титла: Re: bash проблемче
Публикувано от: neter в Jun 13, 2010, 16:41
Проблемът ти е в единичните кавички в реда за sed. Те не позволяват прочитането на променливите като променливи, а променливите вътре се четат като обикновен текст. Използвай двойни кавички ;)


Титла: Re: bash проблемче
Публикувано от: kip в Jun 13, 2010, 18:52
А ако държи на единичните кавички става и така
find $dir -type f -exec sed -i 's/'$orginal'/'$replace'/g' {} \;


Титла: Re: bash проблемче
Публикувано от: asp в Jun 21, 2010, 19:13
дам мерси бачка 6  :P