如何在Ruby中转义终端的字符串?

前端之家收集整理的这篇文章主要介绍了如何在Ruby中转义终端的字符串?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试启动mplayer.我的文件名包含空格,这些应该被转义.
这是我使用的代码
@player_pid = fork do
   exec "/usr/bin/mplayer #{song.file}"
end

其中#{song.file}包含像“/ home / example / music / 01 – song.mp3”这样的路径.我如何正确地逃避这个变量(和标题可能包含的其他奇怪的字符),所以终端会接受我的命令?

解决方法

Shellwords应该为你工作:)
exec "/usr/bin/mplayer %s" % Shellwords.escape(song.file)

在红宝石1.9.x中,看起来您必须先要求它

require "shellwords"

但是在ruby 2.0.x中,我没有必要明确要求它.

猜你在找的Ruby相关文章