2011-12-22 31 views
10

Quiero añadir una variable ${date} en el siguiente script bash:Bash: la expansión de variables en Cotización Individual/Doble Cita

ffmpeg -i in.flv -vf drawtext="fontfile=Sans.ttf:text='Today is ${date}':fontsize=6" out.flv 

Obviamente, ${date} no se expandirá en una sola cita, Tenga en cuenta también que hay es una comilla doble más allá de la comilla simple, lo que lo hace aún más complicado.

Muchas gracias. Estoy en CentOS 6.

Respuesta

10

${date} se expande porque es entre comillas dobles (las comillas simples dentro de las comillas dobles son sólo caracteres)

Prueba con:

$ export date=SOMEVALUE 
$ echo ffmpeg -i in.flv -vf drawtext="fontfile=/usr/share/fonts/dejavu/DejaVuLGCSans.ttf:text='Today is ${date}':fontsize=6" out.flv 
ffmpeg -i in.flv -vf drawtext=fontfile=/usr/share/fonts/dejavu/DejaVuLGCSans.ttf:text='Today is SOMEVALUE':fontsize=6 out.flv 
3

Su ${date} se expandirá correctamente. Como dijiste a ti mismo, rodeas toda la cadena con comillas dobles, y bash va a expandir variables en comillas dobles.

El hecho de que hay comillas simples interiores no tiene ninguna importancia:

[email protected] ~ $ ritchie="Goodbye world" 
[email protected] ~ $ echo "When Dennis passed away, he said '$ritchie'" 
When Dennis passed away, he said 'Goodbye world' 
Cuestiones relacionadas