我试图反斜杠 - 转义一个在其中有反引号的文件名,以传递给一些shell命令。我在尝试使用gsub时看到了一些奇怪的行为。
IRB中的一些例子:
irb(main):001:0> 'weird`things'.gsub('`', '\`')
=> "weirdweirdthings"
irb(main):002:0> 'weird`things'.gsub('`', '\\`')
=> "weirdweirdthings"
irb(main):003:0> 'weird`things'.gsub('`', '\\\`')
=> "weird\\`things" # this is what I want
irb(main):004:0> 'weird`things'.gsub('`', '\\\\`')
=> "weird\\`things"
irb(main):005:0> 'weird`things'.gsub('`', '\\\\\`')
=> "weird\\weirdthings"
这里发生了什么?这是否与$`全局变量有关?