特殊环境变量数组-PIPESTATUS获取bash管道中各个命令的退出状态

Bash 中普通命令的执行退出状态可以直接用特殊变量 $? 取得,但在一个管道命令行中此变量仅为管道最后一个命令的退出状态!

如果需要获得管道中特定位置的命令退出状态,就需要使用“特殊环境变量数组-PIPESTATUS”

注意:

1、PIPESTATUS 是一个数组,第一条命令的返回码存储在${PIPESTATUS[0]},以此类推

2、如果前一条命令不是一个管道,而是一个单独的命令,命令的返回码存储为${PIPESTATUS[0]},此时${PIPESTATUS[0]}同$?值相同(事实上,PIPESTATUS最后一个元素的值总是与$?的值相同)

3、每执行一条命令,切记PIPESTATUS都会更新其值为上一条命令的返回码

此条目发表在Knowledge分类目录,贴了, , , 标签。将固定链接加入收藏夹。

发表评论

电子邮件地址不会被公开。 必填项已用*标注