【问题标题】:Run a conditional bash command inside of tox在 tox 中运行条件 bash 命令
【发布时间】:2019-01-31 05:55:43
【问题描述】:

我正在尝试在 Tox 中运行条件 bash 命令。

如果用户将 'stag' 传递给脚本,tox 应该运行一个 curl 命令;如果他们将“prod”传递给脚本,它应该运行另一个 curl 命令。

[testenv]
ENV=$1
whitelist_externals=
    /bin/bash
deps=
    -rrequirements.txt
commands=
    bash -ec 'curl https://this_is_just_sample_test.com'
    pytest test/test.py

当我尝试在批处理命令中引入条件时:

[testenv]
ENV=$1
whitelist_externals=
    /bin/bash
deps=
    -rrequirements.txt
commands=
    bash -ec 'if [$1 == "stag"]; then curl https://this_is_just_sample_test.com fi'
    pytest test/test.py

我收到以下错误消息:

错误:命令 '/bin/bash -ec if [$1 = "stag"] 的调用错误; 然后 curl https://this_is_just_sample_test.com fi' (用代码退出 2)

【问题讨论】:

    标签: bash conditional tox


    【解决方案1】:

    让我为你修复代码(我为[] 命令添加了空格,将参数更改为$0 并添加了一个分号):

    [testenv]
    whitelist_externals=
        /bin/bash
    deps=
        -rrequirements.txt
    commands=
        bash -ec 'if [ "$0" == "stag" ]; then curl https://this_is_just_sample_test.com; fi' {posargs}
        pytest test/test.py
    

    {posargs} is a substitution 允许从tox 调用传递命令行参数。像这样:

    $ tox stag
    

    【讨论】:

    • allowlist_externalswhitelist_externals 的新名称。它只是一个政治上更正确的同义词。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-14
    • 2021-08-31
    • 1970-01-01
    • 2017-01-24
    • 1970-01-01
    相关资源
    最近更新 更多