代码之家  ›  专栏  ›  技术社区  ›  Andrei Dascalu

如何避开ansible/jinja2三元运算符的单引号?

  •  1
  • Andrei Dascalu  · 技术社区  · 6 年前

    我有下面的片段。基本上,对于包含的任务,我想提供一个变量,其内容如下所示:

    --date='something'
    

    或者,如果原始变量是空字符串,它应该是空的。问题是,我需要字符串采用上面的格式,包括值周围的单引号。

    如果我不需要单引号,一切都很好!然而,由于我需要它们,我正试图用下面的代码片段来逃避它们。不幸的是,我所拥有的似乎不起作用,因为“没有如预期般适用”。我怎样才能正确地逃走,把它们放进我的绳子里?

      tasks:
        - include_tasks: ../tasks/get_current.yml
        - include_tasks: ../tasks/failed_jobs_stats.yml
          vars:
            date_param: "{{ date_start != '' | ternary('--date=\''+date_start+'\'', '') }}"
    
    1 回复  |  直到 6 年前
        1
  •  0
  •   techraf    6 年前

    1. ''
    2. date_start

    date_param: "{{ (date_start != '') | ternary('--date=\''+date_start+'\'', '') }}"