shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] Uso de Variável contendo espaço na linha de comando


From: romildo
Subject: Re: [shell-script] Uso de Variável contendo espaço na linha de comando
Date: Wed, 21 Jan 2004 19:48:14 -0200
User-agent: Mutt/1.5.5.1i

On Wed, Jan 21, 2004 at 05:25:19PM -0200, Geison Farias wrote:
> 
> faça o seguinte teste
> 
> [geison@eletro geison]$ TESTE="oi meu nome eh \"Geison\" "
> [geison@eletro geison]$ echo $TESTE
> oi meu nome eh "Geison"
> 
> At 17:18 21/1/2004 -0200, you wrote:
> >
> >Estou escrevendo um script para o bash onde faço:
> >
> >Em um script bash preciso executar um comando da forma:
> >
> >$ transcode ... -J subtitler="subtitle_file=$f.ppml color_depth=32" ...
> >                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> >
> >Porém a opção '-J' juntamente ao seu argumento não deve
> >ser escrita diretamente na chamada do comando 'transcode',
> >porém deve estar definida numa variável 'sub'
> >
> >sub="-J subtitler=subtitle_file=$f.ppml color_depth=32"
> >                  ^                                  ^
> >                  |                                  |
> >
> >Problema: como colocar as aspas nos pontos indicados de
> >tal forma que o comando
> >
> >$ transcode ... $sub ...
> >
> >seja equivalente ao primeiro comando citado acima?

Não funciona colocando o esacpe seguido de aspas.

Trecho do meu script:

    [...]
    local subcmd=""
    case "subtitler" in
      subtitler)
        subcmd="-J subtitler=\"subtitle_file=$basename.ppml color_depth=32\""
        ;;
      extsub)
        subcmd="-J extsub=$sid:60:-400:0:0:0:0:1:2"
        ;;
    esac

    transcode -i $inputname $sample -y mpeg2enc,null \
        $resize \
        -V --export_asr $aspect \
        -F "5,-s -B $nonvideobitrate -V 230 -S $cdmaxsize -4 2 -2 1 $vquality" \
        -w $vbitrate \
        $subcmd $soundcmd \
        -o $name.$tag
    [...]

Ao executar eu tenho o seguinte log:

+ local subcmd=
+ subcmd=-J subtitler="subtitle_file=matrix.reloaded.ppml color_depth=32"
+ transcode -i matrix.reloaded.avi -c 0-2400 -y mpeg2enc,null --export_prof 
svcd -V --export_asr 2 -F '5,-s -B 286 -V 230 -S 800 -4 2 -2 1 -q 5 -K hi-res 
-R 0 -E -5' -w 2900 -J 'subtitler="subtitle_file=matrix.reloaded.ppml' 
'color_depth=32"' -o matrix.reloaded.sample
transcode v0.6.12 (C) 2001-2003 Thomas Oestreich, 2003-2004 T. Bitterberg
[transcode] warning : unused command line parameter detected (20/21)
[transcode] warning : argc[20]=color_depth=32" (unused)

Observe como a variável está sendo expandida:

  -J 'subtitler="subtitle_file=matrix.reloaded.ppml' 'color_depth=32"'

Alguma dica?


reply via email to

[Prev in Thread] Current Thread [Next in Thread]