go - 从管道中的先前命令读取退出状态
问题描述
我试图在执行我的应用程序之前检测管道序列中的任何命令是否失败。
我正在通过读取$PIPESTATUS
(bash)或$pipestatus
(zsh)环境变量来接近解决方案,这些环境变量应该包含一个包含每个命令的退出代码的数组。
可悲的是,我无法使用os.Getenv
. 这是概念的快速证明:
package main
import (
"os"
"fmt"
)
func main() {
fmt.Printf("$PIPESTATUS is /%v/\n", os.Getenv("PIPESTATUS"))
fmt.Printf("$pipestatus is /%v/\n", os.Getenv("pipestatus"))
}
这导致以下输出:
$ true | false | go run read_pipestatus.go
$PIPESTATUS is //
$pipestatus is //
我怎样才能使这种方法起作用或替代方法?
解决方案
推荐阅读
- c# - 是否有内置方法或智能方法可以在 C# 中获取对象的路径?
- javascript - 如何根据电影 id 1-20 设置显示多少部电影的限制
- typescript - Vscode Typescript - 如何引用 types.d.ts
- shell - 查找 index.html 文件并使用文件夹名称重命名并将文件向上移动
- jhipster - 如果您使用 JHipster,有什么方法可以完全不使用 LiquidBase?
- numpy - 如何使用 Numpy/Scipy 找到与一个数组最相似的数值数组?
- javascript - 表单提交上的另一个“无法设置标题后发送给客户端”
- c++ - 是否可以定义一个包含函数和 lambda 的可调用概念?
- python - sklearn 分类器管道所需的“列的有效规范”是什么?
- python - 熊猫就地意义