例子如下
$ set -x # enable debug output from bash
$ export PYTEST_FLAG='--pytest-args -k "not (xmllint or pclint)"';
$ pytest ${PYTEST_FLAG}
+ pytest --pytest-args -k '"not' '(xmllint' or 'pclint)"' # this line is the debug output
... error
从第四行可以看出,本来"not (xmllint or pclint)"
应该作为一个字符串传递给pytest
命令,但是 bash 在 variable expansion 后把"not
, (xmllint
和 pclint)"
用单引号圈了起来,似乎因为他们含有一些特殊字符?如何阻止 bash 这种行为呢?谢谢
我最终想要 Bash 执行的命令为:
$ pytest --pytest-args -k "not (xmllint or pclint)"
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.