如何在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中,我没有必要明确要求它. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |