Начало Вход/Регистрация Помощ Tazi stranica s latinski bukwi
Области
 Новини
 Актуална тема
 Linux портали
 Какво е Линукс?
 Въпроси-отговори
 Форуми
   •Трудова борса
   •Конкурс
 Статии
 Дистрибуции
   •Поръчка на CD
 Made In BG
 Файлове
 Връзки
 Галерия
 Конференции
Настройки
 Външен вид
 Предложения
 Направи си сам
И още ...
 За нас
 Линукс за българи ЕООД
 Линк към нас
 Предложения

Подкрепяно от:
TelePoint - Място за хора със свободни идеи

SiteGround

initLab

Adsys Group

SAP Bulgaria

Въпроси отговори
Въпрос: BASH script
[Търси: ]

ВНИМАНИЕ: Използвайте форумите на сайта за дa зададете вашите въпроси.

Към началото |Добави въпрос |Отговори
 
Въпрос
От: Marto (martopost __@__ abv< dot >bg) Дата: 01/17/2002
Става дума са BASH скрипт, въпросът ми е следния:
Изпълнявам командата find по следния начин:
find . -name "*.html" -print
 на stdout да речем се извежда следното, представено на два
реда:
/hame/John/index.html
/home/John/links.html
искам да присвоя всеки един ред на отделна променлива
примерно:
a=/hame/John/index.html
b=/home/John/links.html
Как мога да го направя ?
Измислих един вариант, но той се отнася само за
последния ред и не ми върши работа.
Може да стане така:
b=`find . -name "*.html" -print | tail -1`
Tail отпечатва определен брой редове, започвайки
от последния към първия.
	Благодря ви отговора!



Отговор #1
От: Sudo Дата: 01/17/2002
 Ами RESULTS=`find . -name "*.html" -print` ще ти върне
резултата в масив и после :
for I in $RESULTS; do
  echo $I # или квото там искаш да правиш :)
done
Има и още поне един начин:
find . -name "*.html" -exec COMMAND; # Try man find :)
Ама това не съм го ползвал че съм мързелив :(((

Успех



Отговор #2
От: Marto Дата: 01/17/2002
Благодаря ти за отговара все пак, но това не помага !
Можеби не си ме разбрал правилно ще се опитам да го задам 
по следния по-прост начин:
Имам един текстов вайл "file.txt", който съдържа следните 
2 реда в себе си:
/home/John/index.html
/home/John/webs.html
Аз искам чрез BASH script да отворя този файл за четене и 
да присвоя първия ред на една променлива "a" и втория ред 
на втора променлива "b". Как да го направя ? Благодаря !


Отговор #3
От: ttl Дата: 01/18/2002
probvai sys slednoto:
promenliva=`gawk '/tova koeto tyrsish/{print}' file.txt`

naprimer:
a=`gawk '/John*index*html/{print}' file.txt`
b=`gawk `/John*links*html/{print}' file.txt`
i tn. .... ne sum mnogo siguren no probvai varianti ...
procheti neshto i za sed osven za awk mnogo sa polezni
v takiva sluchai :)



Отговор #4
От: milen Дата: 01/18/2002
 razbral te e dobre , bachka si kakto ti kazva Sudo, i tva e
naj naturalnia variant.
da go povtora:

i=0
for b in `cat file.txt`
do
a[$i]=$b
let i=$i+1
done

i posle mozesh da vidish koj da e element ot masiva:
for i in 2 3 4
do 
echo ${a[$i]}
done

 P.S. polzvam masiv, stot misla che iskash da si zapazish
 vsichkite promenlivi. ako ste gi obrabotvash edna po edna,
ne ti trebe. abe, dobre e da prochetesh tva:
http://linuxdoc.org/HOWTO/Adv-Bash-Scr-HOWTO/index.html



Отговор #5
От: Milen Дата: 01/18/2002
P.P.S.
 i oburni golemo vnimanie za kvo sluzak kavichkite,
apostrofite, razlichnite skobi i t.n.
vazno e.



<< cbq (0 ) | problem s kompilaciqta na qdroto (5 ) >>

 
© 2011-... Асоциация "Линукс за българи"
© 2007-2010 Линукс за българи ЕООД
© 1999-2006 Slavej Karadjov
Ако искате да препечатате или цитирате информация от този сайт прочетете първо това
Външния вид е направен от MOMCHE
Code Version: 1.0.8 H (Revision: 23-09-2011)
 
Изпълнението отне: 0 wallclock secs ( 0.06 usr + 0.02 sys = 0.08 CPU)