gali pabandyti `sh -c '$Z'` -- Ernestas "Fla" <klausk_ir_bus_atsakyta@arba.ne> wrote in message news:g81726$dfj$1@trimpas.omnitel.net... > Na esme tame, kad man reikia pasiimti skirtingose scripto vietoje vykdomos > "ps -e ...." komandos rezultata.. > Ir todel noretusi visa ta "ps -e ..." skripte tureti uzrasyta tik 1 karta, > o ne 10 vienodu eiluciu: > > PID=`ps -e ....` cia (vietoj .... dar kokia 100 simboliu :) > > Pirma mintis savaime aisku buvo visa "ps -e ..." sudeti i kintamaji, ir > naudot PID=`$VAR`, bet panasu > kad teks ieskoti kitu sprendimu.. o 'eval' rezultato i kintamaji kaip > suprantu negrazins :( > > O sitas scriptukas buvo tik kaip iliustracija kas neveikia - "command > substitution", kai komanda paduodama > kaip kintamasis, ir jame yra "|" (nes nenaudojant kintamojo, arba > nenaudojant "|", viskas veikia) > > Laimis wrote: >> Fla rašė: >>> Kodel neveikia #2 ir #3, nors output ish #1 neiskraipytas (1:1)? >>> >>> ---------------------------------------(begin: z) >>> #!/bin/ksh >>> >>> Z='ps -e | grep aa' >>> >>> clear >>> echo '---------------' >>> echo 'test #1:' `echo $Z` >>> echo '---------------' >>> echo 'test #2:' `$Z` >>> echo '---------------' >>> echo 'test #3:' $($Z) >>> echo '---------------' >> >> Tai #1 atveju: >> `echo $Z` -- išvedamas (echo) $Z kintamasis ir visa tai įvykdoma kaip >> komanda (``), o toliau jau šios komandos rezultatas sujungiamas su >> pirmuoju echo. >> >> #2 ir #3 atvejais (o ir apskritai) $Z kintamąjį reikėtų tiesmukiškai >> įvykdyti (eval); šiais atvejais veikia kintamojo reikšmės pakeitimas >> (substitution), tad '|' ir, turbūt, kt. (operatoriai) neapdorojami pačio >> shell'o, nes jie nėra (na, neskaitomi esantys) komandinėje eilutėje): >> >> eval $Z >>