加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-16 20:35:04 所属栏目:百科 来源:网络整理
导读:我正在尝试启动mplayer.我的文件名包含空格,这些应该被转义. 这是我使用的代码: @player_pid = fork do exec "/usr/bin/mplayer #{song.file}"end 其中#{song.file}包含像“/ home / example / music / 01 – song.mp3”这样的路径.我如何正确地逃避这个变
我正在尝试启动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中,我没有必要明确要求它.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读