用ruby中的'\'替换空格以使它们可以被bash读取

时间:2015-08-20 15:36:52

标签: ruby bash path

如何格式化"hello bro"以获取ruby中的"hello\ bro"

当我使用"...".gsub /\s/,'\\ '时,我获得了bash无法读取的“hello \\ bro”。 '\'替换没有效果。

由于

1 个答案:

答案 0 :(得分:1)

您的gsub参数实际上是正确的。如果您通过irb运行它,可能不太明显 - 反斜杠在控制台输出中被转义。例如:

irb(main):036:0> my_str = "hello bro".gsub /\s/, '\\ '
=> "hello\\ bro"

但是,当我们输出my_str的值时,我们会看到预期的字符串:

irb(main):043:0> puts my_str
hello\ bro

那就是说,除非你绝对确定空格是你需要逃脱的唯一角色,否则你最好使用像Shellwords这样的东西,如上所述在评论中。