链条管|和 &&

链条管|和 &&

我有这个命令想要过滤make输出:

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

在这里插入的正确方法是什么make | pv -q -L 100

答案1

问题是您将检查 的退出状态pv。使用 POSIXsh语法,您可以执行以下操作:

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

或者用ksh/ bash/ zsh

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

或者与zsh

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

或者与bash

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

相关内容