Bash and Single Quotes
Cameron Simpson
cs at zip.com.au
Sun Jan 11 10:32:59 UTC 2009
On 10Jan2009 22:34, RGH <rgheck at comcast.net> wrote:
>
> I'm trying to write a shell script to convert video files using vlc and
> avidemux, and I've run into a problem. I need to be able to do something
> like this:
>
> vlc -v -I dummy $FIL
> --sout='#transcode{vcodec=dummy,acodec=mp3,ab=192}:std{access=file,mux=dummy,dst="$MP3"}'
> vlc://quit
>
> But of course this doesn't work because the $MP3 variable doesn't get
> expanded in single quotes. The single quotes seem to need to be there to
> protect the "{", though. So, how can this be done?
No, they don't. They're there to protect the double quotes, presuming
you literally need double quotes in the --sout= option value.
You want to use double quotes.
If you want literal double quotes, escape them, eg:
--sout="#transcode...,dst=\"$MP3\"}"
(replace ... with the other stuff I left out)
Cheers,
--
Cameron Simpson <cs at zip.com.au> DoD#743
http://www.cskk.ezoshosting.com/cs/
Jones' Law: The man who can smile when things go wrong has found someone
to blame it on.
More information about the fedora-list
mailing list