ana*_*nik 3 shell pipe exit-status
我有这个命令要过滤make
输出:
cd /app && make && sudo nginx -g 'daemon off;'
Run Code Online (Sandbox Code Playgroud)
make | pv -q -L 100
在这里插入的正确方法是什么?
问题是您将检查pv
. 使用 POSIXsh
语法,您可以执行以下操作:
cd /app && ((make 3>&- && exec sudo nginx -g 'daemon off;' >&3 3>&-) | pv -qL 100) 3>&1
Run Code Online (Sandbox Code Playgroud)
或与ksh
/ bash
/ zsh
:
(set -o pipefail
cd /app && make | pv -qL 100 && sudo nginx -g 'daemon off;')
Run Code Online (Sandbox Code Playgroud)
或与zsh
:
cd /app && make | pv -qL 100 && ((!pipestatus[1])) && sudo nginx -g 'daemon off;'
Run Code Online (Sandbox Code Playgroud)
或与bash
:
cd /app && make | pv -qL 100 && ((!PIPESTATUS[0])) && sudo nginx -g 'daemon off;'
Run Code Online (Sandbox Code Playgroud)