Portál AbcLinuxu, 10. května 2025 07:26

Dotaz: Jak obejit wild card v Bashi

benyy avatar 16.3.2007 22:03 benyy | skóre: 14
Jak obejit wild card v Bashi
Přečteno: 117×
Odpovědět | Admin
Mam takovy problem, mam jeden skriptik v bashi, kterej pomoci read cte v souboru radku po radce, pote s ni neco dela a nakonec ji zas vypise. Narazil jsem vsak na problem pokud se na ty lajne nachazi nejaky z wild cards tak i zde zafunguji. Takze mi napr misto hvezdicky do souboru pribyde seznam vsech souboru v dane slozce. Zjistil sem ze to ma nastarosti echo, ktery vypisuje promenou ulozenou v bashi (kam ji ulozil read). Zajimalo by me zda existuje nejaky zpusob jak vypsat promenou aniz by ony wild cards zafungovaly. Potrebuju ji dostat na sed (a vysledek teto operace zas do promenny) a jediny jak se mi podarilo ji tam bez problemu poslat bylo

res=`echo $var | sed '...'`

Jako nejspis to pude uplne prepsat za pomoci treba awk ci tak neceho,ale me by zajimalo zda to lze nejak udelat aniz by se to muselo prepisovat. Dekuji za pripadne odpovedi
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

16.3.2007 22:59 Ketling | skóre: 8
Rozbalit Rozbalit vše Re: Jak obejit wild card v Bashi
Odpovědět | | Sbalit | Link | Blokovat | Admin
echo $var | sed ... -- robí to čo píšeš
echo "$var" | sed ... -- malo by robiť to čo chceš
echo '$var' | sed ... -- ešte iná možnosť
16.3.2007 23:19 danfis | skóre: 4
Rozbalit Rozbalit vše Re: Jak obejit wild card v Bashi
K tomu bych mel pripominku: To prvni rozvine $var v jeho obsah, takze pokud je ve $var vice slov oddelenych mezerami, tak je rozvine i s mezerami, echo se tedy bude volat s nekolika argumenty (napr.: pokud $var="a b c", pak se bude volat prikaz "echo a b c", takze vysledek bude: "a b c" - snad je to z toho zrejme)

To druhe: " - tyto uvozovky dovoluji interpretaci uvnitr, takze pokud ma byt $var retezec, pak se vzdy vyplati uzavrit ho do uvozovek ("$var"), protoze se pak bude vzdy (i po rozvinuti) brat jako jeden retezec (porovnej, kdyz do prikazoveho radku napises: 'echo a b c' a 'echo "a b c"' - ty apostrofy tam mam, aby bylo jasne co je jeste soucatsi prikazu)

To treti: apostrof ' udela to, ze cokoliv co je uvnitr se nebude nahrazovat tedy: echo '$var' udela vystup $var (i s tim dolarem na zacatku), nebo echo '*?$var' -> *?$var. Takze ta posledni moznost asi neni to, co by jste potreboval.
benyy avatar 17.3.2007 10:19 benyy | skóre: 14
Rozbalit Rozbalit vše Re: Jak obejit wild card v Bashi
Odpovědět | | Sbalit | Link | Blokovat | Admin
diky moc vam obema, tak jednoduche reseni, sem ja to ale blbec. Tedka si to snad uz budu pamatovat

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.