2011-12-22 78 views
10

我想在下面的bash脚本添加变量${date}击:在单引号变量扩展/双引号

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

显然,${date}不会在单引号扩大,也请注意,是超出单引号的双引号,这使得它更加复杂。

非常感谢。我在CentOS 6

回答

10

${date}扩大,因为它是(双引号内的单引号都只是个字符)

与测试它的双引号之间:

$ 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

${date}将扩大正确。正如你自己所说的,你用双引号括住整个字符串,并且bash 将变量扩展为双引号。

有内单引号不会在所有问题的事实:

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