Linux Bash:单引号/双引号中的变量扩展
我想在下面的bash脚本中添加一个变量Linux Bash:单引号/双引号中的变量扩展,linux,bash,variables,syntax,ffmpeg,Linux,Bash,Variables,Syntax,Ffmpeg,我想在下面的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=SOM
${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'