Shell管道 发表于 2018-06-24 更新于 2023-08-17 分类于 Shell Linux Shell中执行命令时管道的使用 通过管道执行命令,获取各个命令的返回值比如执行命令:cmd1 | cmd2 | cmd3 。 如果命令执行完后,通过”$?”获取的是cmd3的返回值。如何获取cmd1和cmd2的返回值呢? 在bash环境下,命令的返回值保存在”PIPESTATUS”数组中: ${PIPESTATUS[0]} 是cmd1的返回值; ${PIPESTATUS[1]} 是cmd2的返回值; ${PIPESTATUS[2]} 是cmd3的返回值; $? 始终等于 ${PIPESTATUS:-1}。 参考文章 comp.unix.shell FAQ - Answers to Frequently Asked Questions