Tema: Re: ksh, wtf?
Autorius: Laimis
Data: 2008-08-14 13:51:59
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