我使用 PIPESTATUS 变量来访问管道的所有退出代码: echo "hello" |厕所-w。现在,由于命令成功运行,当我在脚本或终端中运行管道后立即使用 echo ${PIPESTATUS[*]} 访问时,PIPESTATUS 数组会返回 0 0 。 但是,当我尝试使用以下代码单独打印它们时: echo "${PIPESTATUS[0]"---- 打印输出 0 echo "${PIPESTATUS"---- 不打印任何内容,空白终端
整个代码是:
#!/bin/bash
echo "hello" | wc -w
echo "${PIPESTATUS[0]}"
echo "${PIPESTATUS[1]}"
如何解决这个问题?以及为什么不可能以这种方式访问元素。它是一个数组,所以它应该是可能的。 PIPESTATUS 与易失性或其他什么有关系吗?
PIPESTATUS
的内容会在每个命令后更新。 echo "${PIPESTATUS[0]}"
是一个命令。您正在寻找这样的东西:
echo "hello" | wc -w
status=("${PIPESTATUS[@]}")
echo "${status[0]}"
echo "${status[1]}"