我尝试通过 ruby gsub 命令修改"/foo/bar/dir"
为。"\/foo\/bar\/dir"
我在 irb 中测试它的结果是
x = "/foo/bar/dir"
x.gsub("/","\/")
=> "/foo/bar/dir"
x.gsub("/","\\/")
=> "\\/foo\\/bar\\/dir"
是否可以通过 gsub 将“/”替换为“/”?
问题来源:
我尝试执行“命令行中的字符串”并且“real_path”是我的变量
real_path = "/home/me/www/idata"
path = real_path.gsub("/","\\/")
=> \\/home\\/me\\/www\\/idata
# But what I expect is \/home\/me\/www\/idata
run "sed 's/SHARE_PATH/#{path}/g' #{path}/config/sphinx.yml > #{path}/config/sphinx.tmp.yml"
“运行”命令的结果是
"sh -c 'sed '\''s/SHARE_PATH/\\/home\\/me\\/www\\/idata\\/shared/g .... "
我只需要一个反斜杠
"sh -c 'sed '\''s/SHARE_PATH/\/home\/me\/www\/idata\/shared/g .... "
“运行”是来自 Capistrano 的命令
我的解决方案是
像这样使用单引号而不是双引号
path = real_path.gsub("/",'\/')