/bin/sh: problem s expanziou premennej
Jozef Hitzinger
hitzinger na phobos.fphil.uniba.sk
Čtvrtek Květen 4 11:08:47 CEST 2000
Zdravim .. mam v skripte for slucku, ktora ma bezat cez niekolko ciest s
wildcardom, tak aby sa * rozexpandovala az v tele cyklu, aha takto:
#!/bin/sh
for i in '/tmp/pokus/*/Maildir/new' '/tmp/pokus2/*/Maildir/new'; do {
echo "Checking $i"
grep $i $1 --files-with-matches >> /tmp/0mail.tmp;
} done
To funguje - pise Checking /tmp/pokus/*/Maildir/new a pre grep * expanduje.
Chcel som zoznam tych adresarov strcit do premennej a tu dat na zaciatok
skriptu (povedzme, ze mam takych sluciek viac a zoznam adresarov chcem mat
len na jednom mieste, ok?), ale stale tam mam apostrofy navyse.
Babrem sa s tym uz pol dna a jedine co som objavil je toto:
for i in 'a' 'b' 'c'; do { echo " $i"; } done dava a\n b\n c\n
hello="'a' 'b' 'c'"; echo $hello dava 'a' 'b' 'c'
for i in $hello; do { echo " $i"; } done dava 'a'\n 'b'\n 'c'\n
Takze som to "vyriesil" stylom
for i in $hello; do { echo " `echo $i| sed s/\'//g`"; } done
co dava zelane a\n b\n c\n, ale je to pekny shit.
Da sa to urobit bez sed-u? Kde robim chybu ked si myslim ze prvy a treti
riadok maju dat to iste? Dik ..
--
jozef :-)
Další informace o konferenci Linux