我想从子bash运行命令,并且需要它的返回代码;实际上,它正在运行管道,并且我需要PIPESTATUS数组或至少一个组件。
这是我的最佳猜测,它不起作用。我刚得到一个0。由于bash不会出错,所以很有意义,这不是我所需要的。帮助吗?
bash -c "echo 123 | grep abc | sort; exit ${PIPESTATUS[1]}"; echo $?
0
答案 0 :(得分:1)
尝试使用单引号:
bash -c 'echo 123 | grep abc | sort; exit ${PIPESTATUS[1]}'; echo $?
示例运行:
bash -c 'echo 123 | grep abc | sort; exit ${PIPESTATUS[1]}'; echo $?
1
bash -c 'echo 123 | grep abc | sort; echo status is ${PIPESTATUS[@]}'; echo $?
status is 0 1 0
0
与此相关的post。