0

我想从 sub-bash 运行命令,我需要它的返回码;实际上它正在运行一个管道,我需要 PIPESTATUS 数组,或者至少一个组件。

这是我最好的猜测,但它不起作用。我只得到一个 0。由于 bash 没有出错,它是有道理的,这不是我需要的。帮助?

bash -c "echo 123 | grep abc | sort; exit ${PIPESTATUS[1]}"; echo $?
0
4

1 回答 1

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

有一个相关的帖子

于 2019-09-20T06:28:08.043 回答