Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux Bash:单引号/双引号中的变量扩展_Linux_Bash_Variables_Syntax_Ffmpeg - Fatal编程技术网

Linux 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

我想在下面的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'