有时候我们希望我们的Go程序能够智能地处理Unix信号。例如,我们可能希望服务器在接收到SIGTERM时能够优雅地关闭,或者命令行工具在接收到SIGINT时停止...
在前面的示例中,我们探讨了如何生成外部进程。当我们需要一个正在运行的Go进程能够访问外部进程时,我们会这样做。有时候,我们只是想要用另一个(可能是非Go的)进程...
在前面的示例中,我们探讨了如何设置一个简单的HTTP服务器。HTTP服务器非常适合用来展示如何使用context.Context来控制取消操作。Context可...
Go 标准库在 net/http 包中提供了对 HTTP 客户端和服务器的出色支持。在这个示例中,我们将使用它来发出简单的 HTTP 请求。
Go 标准库提供了简单的工具来从 Go 程序中输出日志,其中 log 包用于自由格式的输出,而 log/slog 包用于结构化输出。
环境变量是向 Unix 程序传递配置信息的通用机制。让我们看看如何设置、获取和列出环境变量。
一些命令行工具(如 go 工具或 git)有许多子命令,每个子命令都有自己的一组标志。例如,go build 和 go get 是 go 工具的两个不同子命令。...
命令行标志是用于指定命令行程序选项的常见方式。例如,在 wc -l 中,-l 就是一个命令行标志。
命令行参数是参数化程序执行的常见方式。例如,go run hello.go 中的 run 和 hello.go 是传递给 go 程序的参数。
单元测试是编写规范的 Go 程序的重要组成部分。testing 包提供了我们编写单元测试所需的工具,而 go test 命令用于运行测试。
//go:embed 是一个编译器指令,允许程序在构建时将任意文件和文件夹包含到 Go 二进制文件中。你可以在这里阅读更多关于 embed 指令的内容。
在程序执行过程中,我们经常需要创建一些在程序退出后不再需要的数据。临时文件和目录非常适合这种用途,因为它们不会随着时间的推移污染文件系统。
filepath 包提供了用于解析和构建文件路径的函数,这些函数可以在不同操作系统之间移植使用。例如,Linux 上的路径格式是 dir/file,而 Wind...
行过滤器是一种常见的程序类型,它从标准输入(stdin)读取数据,进行处理,然后将一些派生结果打印到标准输出(stdout)。grep 和 sed 是常见的行过...