2011-12-22 27 views
10

Tôi muốn thêm một biến ${date} trong kịch bản bash sau:Bash: Mở rộng Variable trong ngoặc Đơn/Đôi Trích

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

Rõ ràng, ${date} sẽ không mở rộng trong dấu nháy đơn, cũng xin lưu ý rằng có là một dấu ngoặc kép ngoài dấu ngoặc đơn, điều này làm cho nó phức tạp hơn.

Cảm ơn rất nhiều. Tôi đang trên CentOS 6.

Trả lời

10

${date} được mở rộng vì nó nằm giữa dấu ngoặc kép (các dấu nháy đơn bên trong dấu ngoặc kép chỉ là ký tự)

thử nghiệm nó với:

$ 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

bạn ${date} SẼ mở rộng đúng. Như bạn đã nói, bạn bao quanh toàn bộ chuỗi bằng dấu ngoặc kép và bash sẽ mở rộng các biến thành dấu ngoặc kép.

Thực tế là có dấu nháy đơn bên trong không quan trọng ở tất cả:

[email protected] ~ $ ritchie="Goodbye world" 
[email protected] ~ $ echo "When Dennis passed away, he said '$ritchie'" 
When Dennis passed away, he said 'Goodbye world' 
Các vấn đề liên quan