problém s vyhodnocováním v bash

Milan Kopacka Milan.Kopacka na seznam.cz
Neděle Prosinec 1 16:22:58 CET 2002


On Sun, 01 Dec 2002 14:16:22 +0100, Ales Nehyba wrote:

Dobre odpoledne,

> CD_SIZE=700
> EVAL1="tail sound.log | awk '/"
> EVAL2=$CD_SIZE"MB"
> EVAL3="/ {print \$8}'"
> EVAL=$EVAL1$EVAL2$EVAL3
> echo "Ready: $EVAL"
> VIDEO_RATE=`$EVAL`
> 
> Nejčastěji dostávám následující hlášení:
> 
> Ready: tail sound.log | awk '/700MB/ {print $8}'
> tail: |: není souborem ani adresářem
> tail: awk: není souborem ani adresářem
> tail: '/700MB/: není souborem ani adresářem
> tail: {print: není souborem ani adresářem
> tail: $8}': není souborem ani adresářem
> ==> sound.log <== ...
> 
> následuje výsledek příkazu "tail sound.log"

parsovani na prikazy (ve vasem pripade rozpoznani te
vytvarene pipeliny) se dela pred vyhodnocenim promennych.
Takze shell spousti tail s parametry "sound.log" "|" "awk" atd...

> může mi prosím někdo poradit, kde dělám chybu, chci-li vyhodnotit 
> výraz
> 
> tail sound.log | awk '/XXXMB/ {print $8}'
> 
> s proměnnou na místě XXX?

Zkuste to takhle:

VIDEO_RATE=`tail sound.log | awk "/${XXX}MB {print \$8}" -`

  Milan Kopacka



Další informace o konferenci Linux