2011-12-22 60 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'