我希望在以下bash脚本中添加一个变量 ${date}
:
ffmpeg -i in.flv -vf drawtext="fontfile=Sans.ttf:text='Today is ${date}':fontsize=6" out.flv
显然,在单引号中${date}
不会被扩展,请注意单引号之外还有双引号,这使得问题更加复杂。
非常感谢。我使用的是CentOS 6。
${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
您的${date}
将正确地展开。就像你自己说的一样,你将整个字符串用双引号括起来,bash会将变量展开到双引号中。
事实上,内部有单引号并不重要:
fg@erwin ~ $ ritchie="Goodbye world"
fg@erwin ~ $ echo "When Dennis passed away, he said '$ritchie'"
When Dennis passed away, he said 'Goodbye world'