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 > >