Portál AbcLinuxu, 29. dubna 2024 10:11


Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Vložit další komentář
David Watzke avatar 10.12.2009 22:44 David Watzke | skóre: 74 | blog: Blog... | Praha
Rozbalit Rozbalit vše Re: Zabijácký vypínač
Odpovědět | Sbalit | Link | Blokovat | Admin
    Err "     ${0/*\/} toggle [index|type]"
    Err "type:"
    Err "    all"
    for TYPE in `cat "$SYS_DIR"/*/type | sort | uniq`; do
${0##*/} je lepší než ${0/*\/}, když ti jde o oříznutí řetězce od začátku.

for x in `cat ...` je hrůza. Tohle nejde?
cat "$SYS_DIR"/*/type | sort -u | while read TYPE
Dál jsem to neřešil. Neber to jako buzeraci, jen se snažím pomoct... :-) Jo a ještě přesměrování do stderr je obecnější pomocí tohoto chvatu: >&2.
“Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
vogo avatar 10.12.2009 22:51 vogo | skóre: 34 | blog: "Skládat papír"
Rozbalit Rozbalit vše Re: Zabijácký vypínač
jojo, tu je vidět, že jsem dlouho nic nepsal v bashi, bude to chtít si přelouskat nějakou příručku :)
Nejsem paranoidní, ale to ještě neznamená, že po mě nejdou.
11.12.2009 07:40 CET
Rozbalit Rozbalit vše Re: Zabijácký vypínač
No pozor. Ono for i in ` comman`;do je bohuzel nekdy nutnosti. Min. ve dvou pripadech.

Prvni pripad je, kdyz kod v cykly neco cte ze stdin, potom totiz command | while read a;do command2 "$a" ; done probehne pouze jednou, protoze z nejakyho duvodu sezere ten command2 ze stdin zbytek toho vystupu z command. Uz se mi to parkrat stalo, pokud si vzpominam, tak to bylo se ssh. generate-host-list | while read host; do ssh "$host" remote-cmd ; done bezelo jenom jednou pro prvniho hosta.

Druhy pripad je, kdyz chces v cyklu nastavit nejakou hodnotu, kterou pak pouzijes dal. Pipe totiz vyvola dalsi bash, takze veskere upravy jsou pouze lokalni, cili generate-list | while read item;do if [ $item -gt $max ] ; then max=$item;fi;done ; pracuj-dale-s-max nebude to same jako for item in `generate-list` ; do if [ $item -gt $max ];then max=$item;fi;done;pracuj-dale-s-max
11.12.2009 09:10 mire
Rozbalit Rozbalit vše Re: Zabijácký vypínač
Prvy pripad sa da vyriesit prepinacom "-n" pre ssh, potom ssh necita standardny vstup.
David Watzke avatar 11.12.2009 13:11 David Watzke | skóre: 74 | blog: Blog... | Praha
Rozbalit Rozbalit vše Re: Zabijácký vypínač
To druhý je IMHO blbost... S max dál pracovat nemůžeš ani když tam dáš ten for...
dave@amd64 ~ $ for x in $(echo a b c); do max=$item; done
dave@amd64 ~ $ echo $max

“Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
11.12.2009 13:51 maleprase | skóre: 28
Rozbalit Rozbalit vše Re: Zabijácký vypínač
kdyz pouzijes spravnou promennou tak muzes
$ for x in a b c; do max=$x; done
$ echo $max
c
David Watzke avatar 12.12.2009 12:52 David Watzke | skóre: 74 | blog: Blog... | Praha
Rozbalit Rozbalit vše Re: Zabijácký vypínač
Jasně... no jo, jsem tele :-D
“Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon

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.