根据 bash(1) 手册页,当我运行以下命令时:
set -e
x=2
echo Start $x
while [ $((x--)) -gt 0 ]; do echo Loop $x; done | cat
echo End $x
输出将是:
Start 2
Loop 1
Loop 0
End 2
在循环之后(作为子外壳运行)变量 x 重置为 2。但是如果我删除管道 x 将被更新:
Start 2
Loop 1
Loop 0
End -1
我需要更改 x 但是,我也需要管道。知道如何解决这个问题吗?