在bash函数中将单引号内的选项传递给vlc时转义变量

时间:2014-01-05 08:03:09

标签: bash escaping vlc

我正在编写一个bash函数来调用 vlc 将视频捕获到文件中。我希望文件名是时间戳。但文件名的dst选项位于单引号内。我怎么能做到这一点?

bash函数和vlc命令是:

function vlc-capture-func() {
    local capture_output_file="/path/vlc-capture-$(date +%Y%m%d%H%M%S)"

    vlc qtcapture:// -vvvv --no-drop-late-frames --no-skip-frames\
 --sout='#transcode{vcodec=h264,fps=15,venc=x264{preset=fast,tune=zerolatency,keyint=30,bframes=0,ref=1,level=30,profile=baseline,hrd=cbr,crf=20,ratetol=1.0,vbv-maxrate=1200,vbv-bufsize=1200,lookahead=0}}:standard{access=file,mux=ps,dst=$capture_output_file}'\
 --qtcapture-width=1280 --qtcapture-height=720 --live-caching=300 --intf=macosx

    echo "Done!"
}

希望我提出一个合适的标题和明确的问题,如果有任何错误的英语,请纠正我。

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

请改用双引号。像:

"#transcode{vcodec=h264,fps=15,venc=x264{preset=fast,tune=zerolatency,keyint=30,bframes=0,ref=1,level=30,profile=baseline,hrd=cbr,crf=20,ratetol=1.0,vbv-maxrate=1200,vbv-bufsize=1200,lookahead=0}}:standard{access=file,mux=ps,dst=${capture_output_file}}'