我可以在Linux中成功运行此pyrg
命令:
python -m unittest discover |& pyrg
> ...
> ----------------------------------------------------------------------
> Ran 3 tests in 0.001s
>
> OK
但不是这一个:
watch -n 1 --color 'python -m unittest discover |& pyrg'
> Each 1.0s python -m unittest discover |& pyrg
>
> sh: 1: Syntax error: "&" unexpected
另外,我无法找到如何在pyrg
的其他表单中使用python -m
而不是实际的脚本:
watch -n 1 --color pyrg python -m unittest discover
> Usage: pyrg [options] TEST_SCRIPT.py
> : python TEST_SCRIPT.py |& pyrg
>
> pyrg: error: no such option: -m
我怎么解决这个问题?
答案 0 :(得分:1)
为了使用特定于bash的语法,您需要确保使用bash shell运行命令:
watch -n 1 --color 'bash -c "python -m unittest discover |& pyrg"'
实际上,您可以删除引用级别:
watch -n 1 --color --exec bash -c 'python -m unittest discover |& pyrg'
答案 1 :(得分:0)
根据man bash
:
如果|&使用命令的标准错误,除了标准输出外,还通过管道连接到command2的标准输入;它是2>& 1 |。
的简写
所以,这应该有效:
watch -n 1 --color 'python -m unittest discover 2>&1 | pyrg'