How to escape strings for terminal in Ruby?
I am attempting to start mplayer. My filename contains spaces and these should be escaped. This is the code I am using: @player_pid = fork do exec "/usr/bin/mplayer #{song.file}" end where #{song.file} contains a path like "/home/example/music/01 - a song.mp3" . How can I escape this variable properly (and possible other weird characters that the title may contain) so the terminal will accept my command? Shellwords should work for you :) exec "/usr/bin/mplayer %s" % Shellwords.escape(song.file) In ruby 1.9.x, it looks like you have to require it first require "shellwords" But in ruby 2.0.x, I