首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在Ruby中为终端转义字符串?

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

Stack Overflow用户
提问于 2013-07-05 02:30:56
回答 1查看 14.2K关注 0票数 31

我正在尝试启动mplayer。我的文件名包含空格,这些空格应该被转义。这是我使用的代码:

@player_pid = fork do
   exec "/usr/bin/mplayer #{song.file}"
end

其中,#{song.file}包含类似"/home/example/music/01 - a song.mp3"的路径。我如何正确地转义这个变量(以及标题中可能包含的其他奇怪字符),以便终端接受我的命令?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-07-05 02:33:49

Shellwords应该适用于您:)

exec "/usr/bin/mplayer %s" % Shellwords.escape(song.file)

在ruby1.9.x中,看起来你必须先require它。

require "shellwords"

但在Ruby2.0.x中,我不需要明确要求它。

票数 50
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17476389

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档