Tubulação de encadeamento | com &&

3

Eu tenho este comando onde eu quero filtrar make output:

cd /app && make && sudo nginx -g 'daemon off;'

Qual é a maneira correta de inserir make | pv -q -L 100 aqui?

    
por anatoly techtonik 26.02.2015 / 13:04

1 resposta

9

O problema é que você estará verificando o status de saída de pv . Com a sintaxe POSIX sh , você poderia fazer:

cd /app && ((make 3>&- && exec sudo nginx -g 'daemon off;' >&3 3>&-) | pv -qL 100) 3>&1

Ou com ksh / bash / zsh :

(set -o pipefail
cd /app && make | pv -qL 100 && sudo nginx -g 'daemon off;')

Ou com zsh :

cd /app && make | pv -qL 100 && ((!pipestatus[1])) && sudo nginx -g 'daemon off;'

Ou com bash :

cd /app && make | pv -qL 100 && ((!PIPESTATUS[0])) && sudo nginx -g 'daemon off;'
    
por 26.02.2015 / 13:11