我正在尝试启动 mplayer。我的文件名包含空格,这些应该被转义。这是我正在使用的代码:
@player_pid = fork do
exec "/usr/bin/mplayer #{song.file}"
end
where#{song.file}
包含类似的路径"/home/example/music/01 - a song.mp3"
。如何正确转义此变量(以及标题可能包含的其他奇怪字符)以便终端接受我的命令?
我正在尝试启动 mplayer。我的文件名包含空格,这些应该被转义。这是我正在使用的代码:
@player_pid = fork do
exec "/usr/bin/mplayer #{song.file}"
end
where#{song.file}
包含类似的路径"/home/example/music/01 - a song.mp3"
。如何正确转义此变量(以及标题可能包含的其他奇怪字符)以便终端接受我的命令?
Shellwords应该为你工作:)
exec "/usr/bin/mplayer %s" % Shellwords.escape(song.file)
在 ruby 1.9.x 中,看起来你必须require
首先
require "shellwords"
但在 ruby 2.0.x 中,我不必明确要求它。