首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用双斜杠将属性值传递给模板

如何使用双斜杠将属性值传递给模板
EN

Stack Overflow用户
提问于 2018-05-31 12:32:19
回答 1查看 276关注 0票数 0

我正在尝试开发一本既支持Windows平台又支持Linux平台的食谱。我在使用模板时遇到了一些问题。因此,基本上,我试图放置一个shell脚本,它将有一个带有路径的export命令。但是我无法在窗口上的shell脚本上得到确切的值。

属性:

代码语言:javascript
运行
复制
root_path = value_for_platform(
  'windows' => { 'default' => "D:\\" },
  'default' => '/opt'
)
xyz_path = value_for_platform(
  'windows' => { 'default' => "#{root_path}xyz_app\\tool\\bin\\xyz.bat" },
  'default' => "#{root_path}/xyz_app//tool//bin//xyz"
)

配方:

代码语言:javascript
运行
复制
template File.join(root_path, '/tmp/xyz_path.sh') do
  source 'xyz_path.sh.erb'
  mode '0755'
  variables({
    :xyz_path => xyz_path
  })
end

模板

代码语言:javascript
运行
复制
#!/bin/bash

export xyz_path = <%= @xyz_path %>

Windows上的期望

代码语言:javascript
运行
复制
#!/bin/bash

export xyz_path = D:\\xyz_app\\tool\\bin\\xyz.bat

实境在上的实现

代码语言:javascript
运行
复制
#!/bin/bash

export xyz_path = D:\xyz_app\tool\bin\xyz.bat
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-05-31 12:41:15

用4个反斜杠来得到你想要的东西。

代码语言:javascript
运行
复制
root_path = value_for_platform(
  'windows' => { 'default' => "D:\\\\" },
  'default' => '/opt'
)
xyz_path = value_for_platform(
  'windows' => { 'default' => "#{root_path}xyz_app\\\\tool\\\\bin\\\\xyz.bat" },
  'default' => "#{root_path}/xyz_app//tool//bin//xyz"
)

由于反斜杠是转义字符,第一个反斜杠转义第二个反斜杠,所以需要重复两次才能在输出中得到两个反斜杠。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50624420

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档