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

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

Re: [shell-script] Variáveis com apóstrofos


From: Elder Marco
Subject: Re: [shell-script] Variáveis com apóstrofos
Date: Mon, 5 Jan 2009 15:47:27 -0200

Então Fernando,

Eu utilizo o Vi para escrever meus scripts e nesse caso ele trata os
apóstrofos como um caractere normal (uma letra, um número, etc.. ). Depois
que eu uso o echo, o apóstrofo também aparece normal mostrando que ele está
lá de fato. No entanto, eu acho que entendi o que você quer ( só acho : -)
). Você quer que o conteúdo da varivável VLC seja:

-vvv --color v4l2:// :v4l2-dev=/dev/video0 :v4l2-adev=/dev/dsp
:v4l2-standard=0 --volume 25000 --sout
'#transcode{vcodec="mp2v",vb=5000,width=640,height=480,fps="30",deinterlace,acodec="mp3",ab="64",channels="1",audio-sync}:std{access="http",mux="ps",dst="
127.0.0.1:8080"}'

Algo assim, não é? Onde se tenha apótrofos tanto no início e final quanto no
meio. Mas eu acho que o erro está na maneira como vc está atribuindo o texto
a sua variável. No seu primeiro e-mail você utilizou os apóstrofos para
iniciar ela:

VLC='<alguma coisa aqui>'

E eu acho que você deveria fazer assim:

VLC="<alguma coisa aqui com apóstrofos também>"

Se eu iniciar ela colocando entre apóstrofos, vai acontecer aquilo que vc
disse. O Vi também fecha a sentença, mas seu eu fizer isso com as aspas, o
Vi não irá fechar ela.

Assim sendo, você declararia assim:

VLC="-vvv --color v4l2:// :v4l2-dev=/dev/video0 :v4l2-adev=/dev/dsp
:v4l2-standard=0 --volume 25000 --sout
\'#transcode{vcodec=\"mp2v\",
vb=5000,width=640,height=480,fps=\"30\",deinterlace,acodec=\"mp3\",ab=\"64\",channels=\"1\",audio-sync}:std{access=\"http\",mux=\"ps\",dst=\"127.0.0.1:8080
\"}''"

E não assim

VLC='-vvv --color v4l2:// :v4l2-dev=/dev/video0 :v4l2-adev=/dev/dsp
:v4l2-standard=0 --volume 25000 --sout
\'#transcode{vcodec=\"mp2v\",
vb=5000,width=640,height=480,fps=\"30\",deinterlace,acodec=\"mp3\",ab=\"64\",channels=\"1\",audio-sync}:std{access=\"http\",mux=\"ps\",dst=\"127.0.0.1:8080
\"}'


Aí eu acho que rola. :-)


Ou seja, utilizar as aspas para iniciar e depois os apóstrofos você pode
usar como qualquer outra.
2009/1/5 Fernando Gottlieb <address@hidden>

>   Olá Eri e Elder.
> Obrigado pela ajuda.
> Continuo fazendo testes...
> Observei que mesmo que os apóstrofos sejam impressos, tenho a impressão de
> que o conteúdo, em algum ponto, é interpretado.
> Vefiriquei que, parcialmente, o conteúdo da variável funciona, desde que os
> limitadores sejam apóstrofos, e não aspas,
> ou seja, nada é interpretado.
> O problema é que preciso que a expressão contenha apóstrofos.
> Normalmente uso o mcedit como editor padrão. Quando estou construindo o
> conteúdo da variável e inicio com apóstrofo,
> percebo que quando coloco o segundo, que é o primeiro interno, a sentença é
> fechada. Talvez seja uma observação boba
> mas tem feito parte da minha análise.
> Agradeço qualquer dica/ajuda.
> Abraços
>
> Fernando
>
>
> 2009/1/4 Elder Marco <address@hidden <eldermarco%40gmail.com>>
>
> > Eri, acho que não deu certo não. Veja que a contrabarra é que está
> > aparecendo em #transconde..:
> >
> >
> > \'#transcode{vcodec="mp2v",vb=5000,width=640,height=480,fps=
> >
> > A questão é que não precisa utilizar a contrabarra para usar os
> apóstrofos.
> > Você pode inserir eles normalmente. Eu fiz essa pequena modificação aqui
> no
> > Fedora, veja:
> >
> > $ cat teste.sh
> > #!/bin/bash
> >
> > VLC="-vvv --color v4l2:// :v4l2-dev=/dev/video0 :v4l2-adev=/dev/dsp
> > :v4l2-standard=0 --volume 25000 --sout
> >
> >
> '#transcode{vcodec=\"mp2v\",vb=5000,width=640,height=480,fps=\"30\",deinterlace,acodec=\"mp3\",ab=\"64\",channels=\"1\",audio-sync}:std{access=\"http\",mux=\"ps\",dst=\"
> > 127.0.0.1:8080
> > \"}"
> >
> > echo "$VLC"
> >
> > $ ./teste.sh
> > -vvv --color v4l2:// :v4l2-dev=/dev/video0 :v4l2-adev=/dev/dsp
> > :v4l2-standard=0 --volume 25000 --sout
> >
> >
> '#transcode{vcodec="mp2v",vb=5000,width=640,height=480,fps="30",deinterlace,acodec="mp3",ab="64",channels="1",audio-sync}:std{access="http",mux="ps",dst="
> > 127.0.0.1:8080"}
> >
> > Sem dar erro nenhum, apenas tirei a contrabarra. :-)
> >
> > 2009/1/4 Eri Ramos Bastos <address@hidden 
> > <bastos.eri%40gmail.com><bastos.eri%
> 40gmail.com>>
> >
> > > Assim funcionou:
> > >
> > > $ cat teste.sh
> > > #!/bin/bash
> > >
> > > VLC="-vvv --color v4l2:// :v4l2-dev=/dev/video0 :v4l2-adev=/dev/dsp
> > > :v4l2-standard=0 --volume 25000 --sout
> > >
> > >
> >
> \'#transcode{vcodec=\"mp2v\",vb=5000,width=640,height=480,fps=\"30\",deinterlace,acodec=\"mp3\",ab=\"64\",channels=\"1\",audio-sync}:std{access=\"http\",mux=\"ps\",dst=\"
> > 127.0.0.1:8080
> > > \"}"
> > >
> > > echo "$VLC"
> > >
> > > $./teste.sh
> > > -vvv --color v4l2:// :v4l2-dev=/dev/video0 :v4l2-adev=/dev/dsp
> > > :v4l2-standard=0 --volume 25000 --sout
> > >
> > >
> >
> \'#transcode{vcodec="mp2v",vb=5000,width=640,height=480,fps="30",deinterlace,acodec="mp3",ab="64",channels="1",audio-sync}:std{access="http",mux="ps",dst="
> > > 127.0.0.1:8080"}
> > >
> > > Como o email pode perder a formatação coloquei no pastebin também:
> > >
> > > http://pastebin.com/m71117678
> > >
> > > []'s
> > > Eri Ramos Bastos
> > >
> > > 2009/1/3 Fernando Gottlieb <address@hidden<fernando0973%40gmail.com>
> <fernando0973%40gmail.com>
> > <fernando0973%40gmail.com>
> > > >
> > > >
> > > > Boa tarde Eri.
> > > > Esta tentativa eu já havia feito, mas não funcionou.
> > > > Quando leio a variável pelo script, ele retorna um erro e sequer
> > consigo
> > > > imprimir (echo).
> > > >
> > > >
> > >
> > >
> >
> > --
> > Elder Marco
> >
> > Linux User: #471180
> >
> > "O conhecimento é tristeza: aqueles que mais sabem são os que mais
> > profundamente devem lamentar a mais fatal verdade, a árvore do
> conhecimento
> > não é a da vida." (Versos extraídos da tragédia Manfred, de Byron e
> citado
> > por Nietzsche em "Humano, demasiado humano")
> >
> > [As partes desta mensagem que não continham texto foram removidas]
> >
> >
> >
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>  
>



-- 
Elder Marco

Linux User: #471180

"O conhecimento é tristeza: aqueles que mais sabem são os que mais
profundamente devem lamentar a mais fatal verdade, a árvore do conhecimento
não é a da vida." (Versos extraídos da tragédia Manfred, de Byron e citado
por Nietzsche em "Humano, demasiado humano")


[As partes desta mensagem que não continham texto foram removidas]



reply via email to

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