2016-05-15 3 views
2

私は正常にLinuxでは、このpyrgコマンドを実行することができます。`watch 'を使ってbash固有の構文を使うにはどうすればいいですか?

python -m unittest discover |& pyrg 

> ... 
> ---------------------------------------------------------------------- 
> Ran 3 tests in 0.001s 
> 
> OK 

でもないが、この1:

watch -n 1 --color 'python -m unittest discover |& pyrg' 

> Each 1.0s python -m unittest discover |& pyrg 
> 
> sh: 1: Syntax error: "&" unexpected 

また、私は、実際の代わりにpython -mと他の形でpyrgを使用する方法を見つけることができませんスクリプト:

どうすればこの問題を解決できますか? man bashによると

+1

@Cyrusありがとうございました。 – heltonbiker

+1

'sh'は' |& 'ではなく' bash'を知っています。 – Cyrus

+0

@Cyrus私は 'watch -n 1 --color 'を試しました。bash python -m unittest discover |&pyrg' 'は利用できません。提案はありますか? – heltonbiker

答えて

1

のbash固有の構文を使用するためには、あなたはbashシェルを使用してコマンドを実行することを確認する必要があります。

watch -n 1 --color 'bash -c "python -m unittest discover |& pyrg"' 

実は引用レベルを削除することができます。

watch -n 1 --color --exec bash -c 'python -m unittest discover |& pyrg' 
0

た場合| &が使用されている場合、コマンドの標準エラーは標準出力に加えて、パイプを介したcommand2の標準入力に接続されます。 2> & 1 |の略語です。だから、

、これは動作するはずです:

watch -n 1 --color 'python -m unittest discover 2>&1 | pyrg' 
関連する問題