Go CLI 教程:Fortune 克隆

我之前写了两篇 CLI 应用的教程,分别是构建 gololcat 和 gocowsay。在这两篇教程中,我都使用了 fortune 作为输入生成器。 在本文中,我将用 Go 完成这个“管道三部曲”的最后一部分 - gofortune。 首先,什么是 fortune?参考 维基百科的定义,Fortune 是一款简单的程序,从一个引述数据库中随机显示一条信息。 说简单点,它是一个随机引述生成器。 它的历史可以追溯到 Unix Version 7 (1979)。至今仍然广泛应用。许多 Linux 发行版都默认安装了它,而在 MacOS 上,可以通过 brew install fortune 命令进行安装。 在某些系统上,它还会在使用 shell 时作为欢迎语或告别语。 维基百科上还提到: 许多人选择将 fortune 输入到 cowsay 命令中,以增添对话的幽默感。 而对于我来说,我会使用我的 gocowsay 命令。 好了,先到这里,让我们用 Go 构建一个 Fortune 的克隆版本。 下面是程序的功能概述。 fortunes 文件夹的位置与系统和发行版有关,可以使用构建标志硬编码它,或者使用环境变量。但为了锻炼,我要做一件“肮脏”的事情,直接询问 fortune,通过执行 fortune -f 命令,并得到如下输出: 输出的第一行包含 fortunes 文件夹的路径。 package main import ( "fmt" "os/exec" ) func main() { out, err := exec....