我真正想做的就是确保管道中的所有内容都成功并将最后一个标准输入分配给一个变量。考虑以下简化的场景:
x=`exit 1|cat`
当我运行时declare -a
,我看到了这个:
declare -a PIPESTATUS='([0]="0")'
我需要一些方法来注意exit 1
,所以我将其转换为:
exit 1|cat|xargs -I {} x={}
并declare -a
给了我:
declare -a PIPESTATUS='([0]="1" [1]="0" [2]="0")'
这就是我想要的,所以我试图看看如果exit 1
没有发生会发生什么:
echo 1|cat|xargs -I {} x={}
但它失败了:
xargs: x={}: No such file or directory
有没有办法让 xargs 分配{}
给x
?其他PIPESTATUS
工作并将标准输入分配给变量的方法呢?
注意:这些示例被简化了。我并没有真正做 a或 a exit 1
,而是使用这些命令进行简化,以便我们可以专注于我的特定问题。echo 1
cat