Ansible 创建一个可与前斜杠配合使用的可移动游戏

Ansible 创建一个可与前斜杠配合使用的可移动游戏,ansible,escaping,Ansible,Escaping,我有一个使用R的devtools::install\u github的用例 --- - hosts: slurm_w vars: arg: "USCbiostats/slurmR" tasks: - debug: var=arg - shell: R -e devtools::install_github({{ arg }}) register: find - debug: var=find.stdout.lines 我想

我有一个使用R的devtools::install\u github的用例

---
- hosts: slurm_w
  vars:
    arg: "USCbiostats/slurmR"
  tasks:
    - debug: var=arg
    - shell: R -e devtools::install_github({{ arg }})
      register: find
    - debug: var=find.stdout.lines
我想做的是编写可以使用install\u github的剧本

---
- hosts: slurm_w
  vars:
    arg: "USCbiostats/slurmR"
  tasks:
    - debug: var=arg
    - shell: R -e devtools::install_github({{ arg }})
      register: find
    - debug: var=find.stdout.lines
我知道还有另一种方法:githubinstall(“PackageName”),它更容易使用,但最终我希望有一个解决方案可以解决正斜杠问题

我能让它按原样安装的唯一方法是使用我最终从ansible剧本中调用的bash脚本

错误


正如这条信息明确指出的那样,这不是向前的斜杠,而是开放式的斜杠

您需要转义提供给
-e
的表达式,以避免bash试图解释

-shell:R-e{('devtools::install_github(“~arg~”))| quote}
注册:查找

正如这条信息明确指出的,这不是正斜杠,而是开放式斜杠

您需要转义提供给
-e
的表达式,以避免bash试图解释

-shell:R-e{('devtools::install_github(“~arg~”))| quote}
注册:查找

发生此问题是因为传递给R命令的表达式(
-e
)需要额外的引号

通常运行方式如下:

R -e "devtools::install_github('USCbiostats/slurmR')"
我们可以避开引用,如下所示:

-shell:“R-e\”devtools::install\u github({{arg}')\“”
注册:查找

发生此问题是因为传递给R命令的表达式(
-e
)需要额外的引号

通常运行方式如下:

R -e "devtools::install_github('USCbiostats/slurmR')"
我们可以避开引用,如下所示:

-shell:“R-e\”devtools::install\u github({{arg}')\“”
注册:查找